Size: a a a

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

2020 August 17

A

Artem in Reatom — стейт-менеджер
Спасибо)
источник

И

Илья in Reatom — стейт-менеджер
О чем щас думаю - есть 2 атома - коллекция и иды которые рутовые(для сортировки),

const items = useAtom(itemsState);
const rows = useAtom(
   rowsOrderState,
   (rows) => {
     return rows.map((rowId) => items[rowId]);
   },
   [items],
 );


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

a

artalar in Reatom — стейт-менеджер
Илья
О чем щас думаю - есть 2 атома - коллекция и иды которые рутовые(для сортировки),

const items = useAtom(itemsState);
const rows = useAtom(
   rowsOrderState,
   (rows) => {
     return rows.map((rowId) => items[rowId]);
   },
   [items],
 );


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

И

Илья in Reatom — стейт-менеджер
Точняк - передавать ид и там тягать - спасибо!
источник

И

Илья in Reatom — стейт-менеджер
@artalar сереализован и обрат и трабл с ключами - как такое решать чтобы не происходило?
источник

И

Илья in Reatom — стейт-менеджер
видмо добавил в стейт и порядок поехал
источник

a

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

a

artalar in Reatom — стейт-менеджер
Илья
@artalar сереализован и обрат и трабл с ключами - как такое решать чтобы не происходило?
источник

И

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

И

Илья in Reatom — стейт-менеджер
просто надо задать железобетонно?
источник

a

artalar in Reatom — стейт-менеджер
Илья
просто надо задать железобетонно?
Да
источник
2020 August 18

И

Илья in Reatom — стейт-менеджер
@artalar а как в useAction вызвать 2 действия? надо возвращать результат или так лучшее не делать?
источник

И

Илья in Reatom — стейт-менеджер
Еще как верно:
const isDragging = useAtom(pageUiState, ({ dragging }) => dragging);
или
const isDragging = useAtom(pageUiState, ({ dragging }) => dragging, []);
?
нет же внешних факторов - надо второе?
источник

a

artalar in Reatom — стейт-менеджер
Илья
Еще как верно:
const isDragging = useAtom(pageUiState, ({ dragging }) => dragging);
или
const isDragging = useAtom(pageUiState, ({ dragging }) => dragging, []);
?
нет же внешних факторов - надо второе?
первое, нет же зависимостей из пропсов
источник

a

artalar in Reatom — стейт-менеджер
Илья
@artalar а как в useAction вызвать 2 действия? надо возвращать результат или так лучшее не делать?
значит нжны два useActon
источник

И

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

И

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

a

artalar in Reatom — стейт-менеджер
Чет я сейчас проект пилю на реатоме, где много связанных данных и есть такой кейс: нужно сделать маппинг данных из экшена и засунуть его в разные атомы. Какие варианты:
- сделать утилити функцию - селектор, которую использовать в обоих редусерах атомов. Но ее нужно мемоизировать тогда, не охото.
- сделать атом от экшена и подписываться на него. Но мне не нужно хранить эти данные в сторе.
- сделать другой промежуточный экшен и диспатчить в него мапнутые данные из подписки на первый экшен. Но тогда нужно менеджить подписку, да и экшен лишний.

Я, пока, сделал в месте диспатча первого экшена диспатч второго в который передаются мапнутые данные, но это не безопасный код, потому что связи не явные. А вы как решаете это?

P.S. фьючерсы можно безпроблемно мапать…
источник

AK

Artur Kenzhaev in Reatom — стейт-менеджер
кто-нибудь сталкивался с тем, что атом не тригерится на экшн?

лог value есть, а экшн уже не дергается
источник

a

artalar in Reatom — стейт-менеджер
Artur Kenzhaev
кто-нибудь сталкивался с тем, что атом не тригерится на экшн?

лог value есть, а экшн уже не дергается
useAction малех не так работает)
источник