Size: a a a

Reatom — стейт-менеджер

2020 June 04

a

artalar in Reatom — стейт-менеджер
заПРь в доку 👀
источник

NS

Nikita Stenin in Reatom — стейт-менеджер
artalar
заПРь в доку 👀
Ок
источник

a

artalar in Reatom — стейт-менеджер
@IlyaAgarkov ты тоже заПРь 👀
источник

IA

Ilya Agarkov in Reatom — стейт-менеджер
artalar
@IlyaAgarkov ты тоже заПРь 👀
ты про что?
источник

a

artalar in Reatom — стейт-менеджер
Ilya Agarkov
ты про что?
Пример с SSR
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
А чем плох вариант, когда у меня есть синглтон клиент, который в себе получает ссылку на store и я из методов этого клиента диспатчу экшены уже после резолвинга промиса
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Как обычно живут с этим?)
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Запросы с разных страниц точно одни и те же нужны
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
А где обрабатывать их результат — уже вопрос
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Можно и в атомах и в клиенте
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
А что будет, если я сделаю store.getState(atom1), если atom1 еще не инициализировался в приложении, его initialState же?
источник

a

artalar in Reatom — стейт-менеджер
Nick Shevrov
А что будет, если я сделаю store.getState(atom1), если atom1 еще не инициализировался в приложении, его initialState же?
источник

IA

Ilya Agarkov in Reatom — стейт-менеджер
artalar
Пример с SSR
ок
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
А можно прям ласт совет спросить?
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
export const checkPrinter = declareAction<PrinterId>('checkPrinter', (payload, store) => {
   const currentPrinterState = store.getState(printerAtom);

   if (currentPrinterState.isFetching) {
       return;
   }

   store.dispatch(startCheckPrinter());

   ApiClient.checkPrinter(payload)
       .then(response => {
           const printerId = response.printerId;

           store.dispatch(checkPrinterSuccess(printerId));
       })
       .catch((err: AxiosError) => {
           if (err && err.response) {
               const errAction = AddNotification({key: `${err.response.status}_printer`});
               store.dispatch(errAction);
           }
       });
});


Диспатчить в стор, когда не уверен, что есть атом для нотификаций, это ок?
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Я хочу чтобы у меня под каждый бэк был свой атом с состоянием запроса
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Но атом для ошибок был единый, из него попап-менеджер там всякую фигню рисует
источник

a

artalar in Reatom — стейт-менеджер
Nick Shevrov
Я хочу чтобы у меня под каждый бэк был свой атом с состоянием запроса
“бэк”?
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Ну считай что вид запросов, не принципиально
источник

a

artalar in Reatom — стейт-менеджер
Nick Shevrov
export const checkPrinter = declareAction<PrinterId>('checkPrinter', (payload, store) => {
   const currentPrinterState = store.getState(printerAtom);

   if (currentPrinterState.isFetching) {
       return;
   }

   store.dispatch(startCheckPrinter());

   ApiClient.checkPrinter(payload)
       .then(response => {
           const printerId = response.printerId;

           store.dispatch(checkPrinterSuccess(printerId));
       })
       .catch((err: AxiosError) => {
           if (err && err.response) {
               const errAction = AddNotification({key: `${err.response.status}_printer`});
               store.dispatch(errAction);
           }
       });
});


Диспатчить в стор, когда не уверен, что есть атом для нотификаций, это ок?
У @IlyaAgarkov был какой-то пример с resource
источник