Size: a a a

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

2020 June 04

NS

Nick Shevrov in Reatom — стейт-менеджер
/* SUBSCRIBING */

store.subscribe(declaredAction, actionPayload => 'side effect')


Кажется оно?
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Nick Shevrov
/* SUBSCRIBING */

store.subscribe(declaredAction, actionPayload => 'side effect')


Кажется оно?
Только непонятно, как в реакте заюзать
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Вернее понятно, просто такого хука в пакете нет
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
https://reatom.js.org/#/guides/migration-from-redux?id=creating-store

import { createStore } from '@reatom/core'

const store = createStore(rootAtom, preloadedData)


Но ведь preloadedData не попадет в атом
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
tableId в руте у меня как раз preloadedData, а atom [10] это rootAtom
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
На самом деле надо как-то так:
const store = createStore(rootAtomCreator(preloadedData));
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Ну если именно с Redux сравнивать
источник
2020 June 05

a

artalar in Reatom — стейт-менеджер
Nick Shevrov
Только непонятно, как в реакте заюзать
Реакт датадрайвен же, а экшен дату не хранит
источник

a

artalar in Reatom — стейт-менеджер
Nick Shevrov
tableId в руте у меня как раз preloadedData, а atom [10] это rootAtom
Тут нужно понимать что такое state у стора - это не Стейт рутового атома, а KV мапа на все атомы. Необходимо это для прозрачного ленивого подключения атомов

Вот сюда посмотри ещё: https://reatom.js.org/#/guides/server-side-rendering?id=custom-function-getinitialstorestate
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Я к тому, что как часть миграции с Redux это не совсем так
источник

a

artalar in Reatom — стейт-менеджер
Nick Shevrov
Я к тому, что как часть миграции с Redux это не совсем так
Так preloadedData берется из какого-то предыдущего getState - поэтому они должны быть одинаковыми (по структуре)
источник

a

artalar in Reatom — стейт-менеджер
Типа в случае с SSR мы сначала что-то делаем на сервере, получаем слепок через getState и его же потом запихиваем на клиенте
источник

a

artalar in Reatom — стейт-менеджер
И с работой с localStarage так же
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
artalar
И с работой с localStarage так же
Хм, а я сделал через функцию, которая создаёт атом
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Потому что по-другому нельзя прокинуть initialState атому
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
И надо либо читать из LS и эмитить экшен для этого атома
источник

a

artalar in Reatom — стейт-менеджер
Не понял, покажи
источник

NS

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

NS

Nick Shevrov in Reatom — стейт-менеджер
const createMyEntityAtom = entity => declareAtom(“someAtom”, entity, ....)

export const storagedAtom = createMyEntityAtom(localStorage.get(“data”)

Примерно так
источник

NS

Nick Shevrov in Reatom — стейт-менеджер
Nick Shevrov
tableId в руте у меня как раз preloadedData, а atom [10] это rootAtom
Так получается тут вот самый рут даже не получить, т.е. я ошибся?
источник