Size: a a a

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

2021 March 24

Е

Евгений in Reatom — стейт-менеджер
Maksim Sharov
как присходит мемоизация?

мы тут выше говорили, что если возвращать значение как есть, все мемоизируется

а вот в доке вычисления происходят https://reatom.js.org/#/guides/migration-from-redux?id=selectors
мемоизация по строгому сравнению проходит
источник

a

artalar in Reatom — стейт-менеджер
Maksim Sharov
Переслано от Sergey
const periodSelector = combine([map(asaAtom, s => s.dateStart), map(asaAtom, s => s.dateEnd)]
+
источник

a

artalar in Reatom — стейт-менеджер
Евгений
мемоизация по строгому сравнению проходит
Object.is, для него NaN эквивалентен
источник

a

artalar in Reatom — стейт-менеджер
Maksim Sharov
как присходит мемоизация?

мы тут выше говорили, что если возвращать значение как есть, все мемоизируется

а вот в доке вычисления происходят https://reatom.js.org/#/guides/migration-from-redux?id=selectors
Как и написал, по возвращаемому значению. Через Object.is
источник

S

Sergey in Reatom — стейт-менеджер
Maksim Sharov
как присходит мемоизация?

мы тут выше говорили, что если возвращать значение как есть, все мемоизируется

а вот в доке вычисления происходят https://reatom.js.org/#/guides/migration-from-redux?id=selectors
Тут меняется либо фильтр либо массив тудушек и нужно в любом случае расчитывать новое значение
источник

S

Sergey in Reatom — стейт-менеджер
Maksim Sharov
как присходит мемоизация?

мы тут выше говорили, что если возвращать значение как есть, все мемоизируется

а вот в доке вычисления происходят https://reatom.js.org/#/guides/migration-from-redux?id=selectors
Да и тут все же аналог того что я выше приводил, сначала выбираем нужные значения четез map и combine, потом вычисляем результат
источник

Е

Евгений in Reatom — стейт-менеджер
artalar
Как и написал, по возвращаемому значению. Через Object.is
хм. не увидел. в react useAtom используется строгое сравнение
источник

a

artalar in Reatom — стейт-менеджер
Евгений
хм. не увидел. в react useAtom используется строгое сравнение
useAtom набор костылей, с реактом сложно было интеграции наладить(( там вообще атом не создается на селектор, что можно багом назвать или недоделкой. Во второй версии будет исправлено.
Но строгое сравнение нужно поправить
источник

И

Иван in Reatom — стейт-менеджер
artalar
Не, подписка осуществляется на изменение возвращаемого значения. В этом примере newAtom подписывается на любое изменение asaAtom, и возвращает каждый раз новый объект, так что его подписка, выходит, будет реагировать на любое изменение asaAtom
источник

a

artalar in Reatom — стейт-менеджер
++ надо было сначала все почитать)
источник

И

Иван in Reatom — стейт-менеджер
artalar
++ надо было сначала все почитать)
Но некоторые вещи лучше несколько раз повторить, чтобы закрепилось 🙂
источник

Е

Евгений in Reatom — стейт-менеджер
и просто вместо map использовать какой-нибудь атом-аналог типа ensureMap тоже не получится
источник

M

Maksim Sharov in Reatom — стейт-менеджер
artalar
useAtom набор костылей, с реактом сложно было интеграции наладить(( там вообще атом не создается на селектор, что можно багом назвать или недоделкой. Во второй версии будет исправлено.
Но строгое сравнение нужно поправить
да, по поводу костылей в реакте

написал наивную реализацию connect под реатом по аналогии с редаксом https://bit.ly/2PqhKbn

применяется в виде обертки

const Connected = connect({
   atomReturnedValue: myAtom,
 })(View)

состояние атома меняет но все они остаются в девтуле (скрин), может подскажешь куда копать?
источник

Е

Евгений in Reatom — стейт-менеджер
Maksim Sharov
да, по поводу костылей в реакте

написал наивную реализацию connect под реатом по аналогии с редаксом https://bit.ly/2PqhKbn

применяется в виде обертки

const Connected = connect({
   atomReturnedValue: myAtom,
 })(View)

состояние атома меняет но все они остаются в девтуле (скрин), может подскажешь куда копать?
комбай вынести в сам connect  а не во вложенную
источник

Е

Евгений in Reatom — стейт-менеджер
https://bit.ly/3lONkf6
потому что combine создает атом
источник

M

Maksim Sharov in Reatom — стейт-менеджер
Евгений
комбай вынести в сам connect  а не во вложенную
хм, почему так происходит?
источник

Е

Евгений in Reatom — стейт-менеджер
Maksim Sharov
хм, почему так происходит?
combine создает атом. у тебя combain вызывается на каждое изменение пропсов по всей видимости
источник

M

Maksim Sharov in Reatom — стейт-менеджер
кажется, догадываюсь, не проичходит отписки, так как компонент еще смонтирован и получается, пропсы меняются и просто еще одно состояние атома в стор залетает
источник

M

Maksim Sharov in Reatom — стейт-менеджер
Евгений
combine создает атом. у тебя combain вызывается на каждое изменение пропсов по всей видимости
спасибо
источник
2021 March 25

M

Maksim Sharov in Reatom — стейт-менеджер
Maksim Sharov
да, по поводу костылей в реакте

написал наивную реализацию connect под реатом по аналогии с редаксом https://bit.ly/2PqhKbn

применяется в виде обертки

const Connected = connect({
   atomReturnedValue: myAtom,
 })(View)

состояние атома меняет но все они остаются в девтуле (скрин), может подскажешь куда копать?
а нет, не в том дело, что писал выше

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

сам же стор (скрин) другой
источник