169 похожих чатов

Методологический вопрос, господа. Это редьюсер (один из). Ему нужны данные с

бэка. Я прекрасно понимаю, почему вижу пустой список юзеров - пока асинхронщина отрабатывает, редьюсер уже сам себе все решил и выплюнул.

Скажите, а как среди бородатых и умудренных дядек принято разруливать сию проблему? Не пихать же весь редьюсер в промис!

31 ответов

13 просмотров

Никак. Это не проблема, таков редакс. Приложение стартует на пустых стейтах и должно валидно отработать на первом рендере с пустым массивом. Когда придут данные, массив заполнится и приложение перерисуется.

А редьюсер в промис пихать нельзя. Редьюсер — чистая функция, он должен всегда возвращать значение

Vladimir-Samoilenko Автор вопроса
Ivan 🧑‍🚀
Никак. Это не проблема, таков редакс. Приложение с...

То есть, я должен в соответствующем компоненте поставить спиннер, запромисить фетч от бэка и, когда что-то приедет, обратиться к редьюсеру с экшеном на апдейт всего массива, типа так?

где-то повыше делаешь `if(props.users.length === 0) return <Skeleton />`и все - не будет попыток получить доступ к несуществующим данным

Vladimir-Samoilenko Автор вопроса
Victor Rusakovich
где-то повыше делаешь `if(props.users.length === 0...

Не понял. Это как-то заблокирует функцию редьюсера?

Vladimir Samoilenko
Не понял. Это как-то заблокирует функцию редьюсера...

нет, это в компоненте писать в редаксе желательно чтоб структура стейта не менялась со временем, т.е. если на верхнем уровне должен быть список чего-то из будущего, в начале там будет тоже список, но пустой.

Если коротко то редакс синхронен и чтобы все работало так как ты ожидаешь нужно использовать redux thunk или redux saga

Vladimir-Samoilenko Автор вопроса
Victor Rusakovich
нет, это в компоненте писать в редаксе желательно ...

ну, то есть, как я примерно и говорил - крутим спиннер в компоненте, пока не прилетит что-то вменяемое.

Vladimir-Samoilenko Автор вопроса
Роман
Именно

Да, читал как-то мельком, что есть такие и не совсем понимал, зачем, т.к. сам привык с редаксом работать напрямую. А воно оно че, Михалыч, это прокладки, которые тормозят редакс в нужные моменты, чтобы синхронизировать его с асинхронными запросами к бэку, верно я понимаю?

Vladimir Samoilenko
Да, читал как-то мельком, что есть такие и не совс...

Они скорее тормозят екшны А редусеры отрабатывают на каждый екшн

Vladimir Samoilenko
То есть, я должен в соответствующем компоненте пос...

Нет, в редьюсере хранить поле «загружаются ли сейчас данные и менять это поле в Пномпень начала и окончания загрузки. В компоненте слушать это поле и показывать спиннер. Ну и не запромисить фетч, а задиспатчить асинхронный (если redux-thunk) или обычный (если redux-saga) экшен, чтобы мидлваря начала фетчить

Vladimir Samoilenko
Да, читал как-то мельком, что есть такие и не совс...

Они его не тормозят. Нельзя тормозить редакс

Vladimir-Samoilenko Автор вопроса
Ivan 🧑‍🚀
Они его не тормозят. Нельзя тормозить редакс

Но за счет чего-то они же согласовывают как-то редакс со всей остальной асинхронщиной?

Ivan 🧑‍🚀
Нет, в редьюсере хранить поле «загружаются ли сейч...

тебе надо по дефолту переменную isFetching делать false потом после того как запрос прошел мкенять на тру

Vladimir Samoilenko
Но за счет чего-то они же согласовывают как-то ред...

Выхватывают из потока редакса всю асинхронщину и крутят её сбоку. А в редакс диспатчат обычную синхронщину. Но потом

Vladimir Samoilenko
Но за счет чего-то они же согласовывают как-то ред...

редакс санки возвращают по моему екшин который потом диспатчит редакс ,там все построено на замыкании

Vladimir-Samoilenko Автор вопроса
Ivan 🧑‍🚀
Выхватывают из потока редакса всю асинхронщину и к...

но прежде чем пулять синхронщину в редакс, нужно дождаться, пока асинхронщина сбоку докрутится.

Vladimir Samoilenko
но прежде чем пулять синхронщину в редакс, нужно д...

Всё так. И в редьюсеры ничего не попадает, пока асинхронщина не докрутится. Просто сходи посмотри тутор какой-нибудь по мидлварям редакса, а потом по redux-thunk

Vladimir Samoilenko
но прежде чем пулять синхронщину в редакс, нужно д...

Достаточно понять, как работает мидлваря. В коде redux-thunk всего около десяти строк кода, они станут очевидны после вкуривания концепции мидлварей

Vladimir-Samoilenko Автор вопроса
Vladimir Samoilenko
около десяти строк кода вся библа???

да,можно при желании самому написать)

Vladimir Samoilenko
около десяти строк кода вся библа???

о, сколько нам открытий чудных готовит мир реакст стейт менеджеров )) погугли про https://github.com/storeon/storeon

Vladimir-Samoilenko Автор вопроса
Ivan 🧑‍🚀
screenshot

Му-ха-ха!

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта