Андрей
с момощью метода Object.keys
Oleg
а зачем?
Андрей
ну что бы вложенный массив выводил нужный понядок
Андрей
а так он выводит только первый вложенный объект
Oleg
я если честно не понял до конца какая у тебя задача, твой код работает адекватно
Андрей
он работает но на половину)
Oleg
у тебя отдельный массив юзерей userDetails и отдельный массив сообщений messages
Андрей
тоесть первый массив отрабатывает выводится 2 элемента массива
Андрей
а второй который вложенный выводит только первый блок сообщений
Oleg
дак там один блок
Oleg
он его и выводит
Андрей
нет там сообщения от 2 х юзеров
Oleg
скинь содержимое массивов из дебага
Oleg
я боюсь что ты ошибаешся
Oleg
или ссыль на собраный проект скинь, я подебажу сам
Oleg
тока что бы с картой была
Андрей
точно
Андрей
сейчас посмотрел что мне заносится в store
Oleg
и что там?
Андрей
Андрей
просто массив
Андрей
а мне нужен объект сообщений от одного и объект от другого
Oleg
ну вот, красавчик, разобрался
Андрей
невнимательность)
Андрей
спасибо
Oleg
смотри санки или через что данные подгружаются
Андрей
да я дусаю в редюсоре проблемма
Андрей
case ADD_USERS_MESSAGES:{ return { ...state, details: { ...state.details, messages: [...state.details.messages, action.messages], } } }
Oleg
ну да, сыпет все в один массив
Андрей
action.messages это объект по идее
Андрей
data.history.map((ms) => { let obj = {}; obj["message"] = ms.message; obj["isAdmin"] = ms.isAdmin; this.props.addUsersMessages(obj) })
Oleg
тогда в экшин надо айди юзера присылать и месеж
Oleg
либо в объект месежес засунуть айдишник и пушить как объект в массив messages
Андрей
сейчас еще гляну что точно мне приходит
Oleg
давай
Oleg
фигач
Андрей
по идее сокеты и так все должны разделять )
Oleg
ну хз, надо смотреть где у тебя функции работы с сокетами прописаны и чо они там делают
Андрей
получается у меня все сообщения сейчас выводятся, а как можно их разделить более толково? привязать к каждому сообщению roomID и если так то как выводить сообщения с определенным id в определенный блок?
Oleg
я бы добавил в объект с сообщением поле userId
Oleg
и при выводе делал бы filter сообщенией по этому userId
Oleg
еще лучше было бы сделать обхект с userId и полем messages, где будут все сообщения пользователя
Oleg
messages = [ { userId: 1, messages: ['sosite', 'blyadi', 'vam', 'za', 'schastye'] }, { iserId: 2, {'bla bla', 'da da'} } ]
Oleg
ну и поля нужные типа isAdmin туда же
Андрей
да думаю можно попробовать
Андрей
смотри а как мне диспатчить сообщения в редюсер. если один и тот же usrId будет они будут записываться, а если другой userId придет он не затерет прошлый объект?
Андрей
тоесть как написать, что если мне приходит другой userId мне нужно создать новый объект?
Oleg
делать проверку , если есть такой айди то дописывать если нет то добавлять новый
Андрей
понятно) спасибо
Oleg
const m = messages.filter(item => item.userId == id)); if (m.length == 0) { добавляем новый } else { m[0] - найденный юзер }
Андрей
занес в стор сообщения но почему то их 4 а не 2
Андрей
сообщения в 2х случаях undefined
Oleg
го код
Иван
сколько раз рендер произошел?
Андрей
4 похоже
Андрей
case ADD_USERS_MESSAGES:{ return { ...state, messages: [...state.messages, {roomID:action.roomID, history:action.messages}] } }
Oleg
и скрин содержимого
Андрей
мне кажется что то с жизниным циклом
Андрей
Oleg
айдишники одинаковые?
Oleg
у 0 и 1
Oleg
и у 2 и 3
Oleg
бля, у меня в детстве был сосед алкаш, он когда нажреца все время говорил иу иу иу иу в пьяном угаре)
Azim
😂
Иван
А можно как то избегать этой вот такой жопы?
никак
По-моему нормальный объект
Иван
да но к нему столько же экшенов и редюсеров, тошнит от написания
Vlad
с праздником самураи
Alexey
Иван
Запиши в строку)
Шутник я смотрю)
Александр
Шутник я смотрю)
Просто не вижу проблемы 🤷‍♂️
акионка.
А можно как то избегать этой вот такой жопы?
House* 64 строчка исправь опечатку
Иван
House* 64 строчка исправь опечатку
Спасибо, везде нормально написал, а с именованием экшена ошибся
Oleg
Спасибо, везде нормально написал, а с именованием экшена ошибся
по возможности дробить компоненты, но это хз как в реальных проектах, всякое бывает
Иван
я дроблю реьюсеры и экшены по компонентам, иначе совсем капец путанно
Oleg
норм
Oleg
все с практикой прийдет)
Oleg
по сути то э все однотипно, все экшены однотипны, add delete create show load unload и тд