Size: a a a

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

2020 April 14

IA

Ilya Agarkov in Reatom — стейт-менеджер
Ilya Agarkov
а я пока скрещиваю в один пакет normalizr и reatom.  Идея в том что у нас не просто схемы из normalizr но и эти схемы знают в какой атом им нужно записать данные
судя по тестам запилил версию 0.0.1 https://codesandbox.io/s/reatom-normal-3rkej?file=/src/libs/reatom-normal/index.test.js
источник
2020 April 15

EB

Evgeniy Baranov in Reatom — стейт-менеджер
Привет! Подскажите, возможно ли как-то сделать, чтобы при создании атома в initialState попадали разные значения?
Хочу создать атом, который будет хранить url параметры в виде объекта. Не хотелось бы указывать его в createStore тк он не всегда нужен. Но при этом нужно чтобы там выли актуальные параметры, даже если атом будет удаляться.
Сейчас выглядит как-то так:
export const urlAtom = declareAtom<ParsedUrlQuery>('url', getActualUrlParams(), on => [
 on(routeChange, (_, payload) => payload)
])

Те параметры, которые были в url при загрузке страницы попадают в атом. Но они не актуализируются.
Возможно ли это побороть?
источник

AD

Arthur Donkovtsev in Reatom — стейт-менеджер
Evgeniy Baranov
Привет! Подскажите, возможно ли как-то сделать, чтобы при создании атома в initialState попадали разные значения?
Хочу создать атом, который будет хранить url параметры в виде объекта. Не хотелось бы указывать его в createStore тк он не всегда нужен. Но при этом нужно чтобы там выли актуальные параметры, даже если атом будет удаляться.
Сейчас выглядит как-то так:
export const urlAtom = declareAtom<ParsedUrlQuery>('url', getActualUrlParams(), on => [
 on(routeChange, (_, payload) => payload)
])

Те параметры, которые были в url при загрузке страницы попадают в атом. Но они не актуализируются.
Возможно ли это побороть?
getActualUrlParams() ? это что? начальное состояние?
источник

AD

Arthur Donkovtsev in Reatom — стейт-менеджер
(_, payload) => payload)
+ ты я так понял перезаписываешь новым сосотоянием, если тебе нужно сохранить предыдущее + новое, то первым аргументом воспользуйся
источник

EB

Evgeniy Baranov in Reatom — стейт-менеджер
Arthur Donkovtsev
getActualUrlParams() ? это что? начальное состояние?
Функция возвращает объект с начальным состоянием
источник

EB

Evgeniy Baranov in Reatom — стейт-менеджер
Да, мне экшен routeChange приходит новое состояние.
Проблема в том, что атом удаляется периодически, и экшен не отрабатывает
источник

AD

Arthur Donkovtsev in Reatom — стейт-менеджер
и тут так (state, payload) => ({…state, …})
источник

EB

Evgeniy Baranov in Reatom — стейт-менеджер
Arthur Donkovtsev
и тут так (state, payload) => ({…state, …})
Чтобы это сработало, нужно чтобы атом был создан, и не удалялся. Если я делаю в createStore(urlAtom, initialState) то экшены отрабатывают, все ок.  Но мне хотелось бы не указывать атомы в createStore
источник

a

artalar in Reatom — стейт-менеджер
Evgeniy Baranov
Привет! Подскажите, возможно ли как-то сделать, чтобы при создании атома в initialState попадали разные значения?
Хочу создать атом, который будет хранить url параметры в виде объекта. Не хотелось бы указывать его в createStore тк он не всегда нужен. Но при этом нужно чтобы там выли актуальные параметры, даже если атом будет удаляться.
Сейчас выглядит как-то так:
export const urlAtom = declareAtom<ParsedUrlQuery>('url', getActualUrlParams(), on => [
 on(routeChange, (_, payload) => payload)
])

Те параметры, которые были в url при загрузке страницы попадают в атом. Но они не актуализируются.
Возможно ли это побороть?
источник

EB

Evgeniy Baranov in Reatom — стейт-менеджер
🔥
источник

a

artalar in Reatom — стейт-менеджер
Никто не хочет покотрибьютить?)
https://github.com/artalar/reatom/issues/324
источник

r

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

IA

Ilya Agarkov in Reatom — стейт-менеджер
rezed
я недавно тоже запиливал нормализованный стор на реатоме, кое-что получилось и работает, могу как-нибудь найти время и накидать абстрактную демку показать, если интересно
всегда интересно посмотреть на другое решение
источник

r

rezed in Reatom — стейт-менеджер
Да, я тоже посмотрю то что ты скидывал, интересно
Не могу пока сказать когда, пока что надо делать задачи по проектам) постараюсь найти время
источник

IA

Ilya Agarkov in Reatom — стейт-менеджер
я вот думаю свое в проект затащить. Надо только попробовать больше тестов написать сначала. И смотреть чего не хватает. Хотя думаю что без реального проекта как будет сложно понять чего не хватает
источник

a

artalar in Reatom — стейт-менеджер
Там задача простая, подчти все готово в кодсендбоксе
источник

И

Иван in Reatom — стейт-менеджер
мне лень искать, извините

в реатоме можно как-то получить dispatch в компоненте? как useDispatch из редакса
источник

a

artalar in Reatom — стейт-менеджер
nope
источник

a

artalar in Reatom — стейт-менеджер
Только если через useContext весь стор
источник

a

artalar in Reatom — стейт-менеджер
Сам context из reatom/react экспортится
источник