Arthur
Arthur
Arthur
Есть условный пост, я его отправляю в некий чат
Arthur
Идет запрос, приходит респонс, меняет стейт
Arthur
Это условный альбом, который висит на конекте со стейтом, в котором я отрисовываю карточки, которым передаю пропсы
Yura
Почитай react.memo() Может поможет Рендерит, когда меняется стейт
Антон
ты кастомынй flux используешь или redux?
Arthur
redux
Антон
рендер должен прохожить и так и так когда меняется стейт
Антон
и вызывать его силой это костыль
Arthur
Тут, как мне кажется, именно проблемы из-за асинхронности могут быть Работа идет с данными, которые с сервера идут Я пробовал на статических данный изменять стейт и все хорошо отрабатывало
Антон
покажи код где ты запрос делаешь
Антон
проблем быть не должно
Arthur
Возможно есть механизм по типу сокетов?
Антон
асинхронность просто останавливает работу кода пока не отрботает resolve или reject после этого store должен обнавлятся
Антон
делаешь запрос полученные данные парсишь вызываешь dispatch записываешь в store
Антон
так должно работать
Yura
У него наверное страница рендерится, а потом приходят данные
Arthur
Антон
при изменение store redux перендер должен проиходить
Arthur
Тут не совсем красиво, что использую тот же объект, который пришел, но не должно влиять
Антон
ну хз, я пишу в методете componentDidMount делаю fetch запрос, и так же через then вызываю dispatch
Arthur
Этот метод вызывается при клике
Yura
Попробуй вставить sendtotelegram....
Yura
В promise.all[]
Антон
эм
Yura
.
Yura
{}
Yura
И в скобках диспатчить
Антон
не уверен, но попробуй переписать что бы запрос шел на api при ренгдере компонента, а уже при клике он брал из стора нужную инфу
Yura
Сначала ты получишь ответ , потом будешь диспатчить
Yura
И потом будет рендер
Антон
componentDidMount отрабатывает сразу после рендера и работу spa не тормозит
Arthur
Так тут и так сначала ответ, потом диспатч
Антон
т.е. отображаются элементы и есть время до того как пользователь начал действия по странице сделать нужные запросы
Yura
componentDidMount отрабатывает сразу после рендера и работу spa не тормозит
Ну так сначала не приходят данные Компонента монтируется
Yura
И все
Arthur
Эти карточки рендерятся на дидмаунте, но при клике должен поменяться элемент
Arthur
Yura
Arthur
Должен смениться текстик при клике
Yura
Arthur
Диспатч после респонса вызывается
Yura
Arthur
Оно на функциональной компоненте
Arthur
Так и происходит
Yura
Arthur
Дело в том, чтоб оно поменялось
Yura
Arthur
Это про родительский, где лежит эта дочерняя
Yura
Arthur
Родительский посылает запрос на эти посты
Arthur
Проверял, да
Arthur
Ну сорь)
Archer
Можешь писать аргументы в столбик? А блоки then/catch/finally на след строке
Archer
Используй eslint
Archer
И вообще лучше перейди на async/await
Arthur
Можешь писать аргументы в столбик? А блоки then/catch/finally на след строке
Думал над этим, но они все разной длинны и внутренний перфекционист не захотел выравнивать все красиво
Archer
Ты в самой компоненте выведи что тебе приходит в isSended
Arthur
Повесить connect?
Archer
Ты случаем не имеешь локальны стейт и стейт в редаксе? Откуда ты вообще отрисовку делаешь?
Archer
В общем у тебя есть компонент карточка в ней ты как я понял в зависимости от isSended показываешь свою кнопку или текст о том что отправило, вот это выведи в компоненте
Archer
Данные которые она сама принимает
Arthur
createStore редаксовский и редьюсеры самописные Я и спрашиваю, данные через connect подвесить в компоненту?
Archer
А ты как сейчас подвешиваешь?
Archer
Ты используешь другие способы перекинуть данные с редакса в компоненту?
Arthur
Есть родительская компонента Альбом В ней map проходит по постам и передает в компоненту поста пропсы, который ей рендерить
Arthur
Эта родительская подписана на редакс стор
Archer
Отлично, что принимает это компонента посмотри, не родительская а ребёнок, после отправки запроса
Archer
И что за решение post.isSended = тру, ты можешь в редьюсере просто вернуть { ..., isSended: true, }
Arthur
Там массив объектов
Arthur
Это поле каждого
Archer
Ты конкретно покажи то поле которое должно меняться после запроса, покажи его в твоей компоненте карточке, возможно ты выводишь в консоль изменённые данные но в саму компоненту они приходят не новые
Arthur
Карточки не ререндарятся после обновления стора Происходит дипатч, который переделывает поле в объекте, я беру из стейта все объекты и меняю нужный мне на новый, после этого дебаггер не останавливается в компоненте карточки, значит не ререндерит ее
Arthur
Сейчас еще в родителе подебажу, может он тоже не видит изменений
Archer
Покажи весь код главной компоненты
Archer
Если ты рисуешь все с пропсов от редакса то не должно пропадать обновление но если у тебя есть ещё и локальные стейт в который ты закидываешь эти пропсы то тогда это обычное явление когда не обновляются данные, для этого обычно есть componentDidUpdate