Size: a a a

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

2020 August 18

a

artalar in Reatom — стейт-менеджер
Тот экшен который ты вернешь из колбека useAction и будет задиспатчен
источник

a

artalar in Reatom — стейт-менеджер
declareAction возвращает экшенКриэйтор, вызов которого возвращает plain action
источник

a

artalar in Reatom — стейт-менеджер
Кароч тебе там нужно return updateCode
источник

AK

Artur Kenzhaev in Reatom — стейт-менеджер
artalar
Тот экшен который ты вернешь из колбека useAction и будет задиспатчен
это прям мастхев в типы добавить, думаю)
источник

a

artalar in Reatom — стейт-менеджер
Это специально сделано, что бы ты в мемоизированном колбеке useAction мог какую-то логику запроцессить еще и решить надо оно тебе или не надо
источник

a

artalar in Reatom — стейт-менеджер
Artur Kenzhaev
это прям мастхев в типы добавить, думаю)
А как?)
источник

a

artalar in Reatom — стейт-менеджер
Отменить возможный void в колбеке?
источник

AK

Artur Kenzhaev in Reatom — стейт-менеджер
мб для этого специальный символ возвращать? типа SKIP_ACTION
источник

a

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

AK

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

a

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

И

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

const first = {
 rowsOrder: ['2', '1', '3'],
 items: {
   2: {
     type: 'row',
     id: '2',
   },
   1: {
     type: 'row',
     id: '1',
   },
   3: {
     type: 'row',
     id: '3',
     columns: ['6', '7'],
   },
   6: {
     type: 'column',
     id: '6',
   },
   7: {
     type: 'column',
     id: '7',
   },
 },
};

const second = {
 items: {
   2: {
     type: 'row',
     id: '2',
     order: 1,
     parentId: 0,
   },
   1: {
     type: 'row',
     id: '1',
     order: 3,
     parentId: 0,
   },
   3: {
     type: 'row',
     id: '3',
     order: 2,
     parentId: 0,
   },
   6: {
     type: 'column',
     id: '6',
     order: 1,
     parentId: 3,
   },
   7: {
     type: 'column',
     id: '7',
     order: 2,
     parentId: 3,
   },
 },
};
источник

И

Илья in Reatom — стейт-менеджер
Первая сложнее порядок держать но проще сортировать(не надо править все объекты) - но менее наглядная что-ли
Вторая более наглядная - но тут order при изменения порядка нужно все провить и много фильтров будет, наверно первый вариант надо делать?
источник

И

Илья in Reatom — стейт-менеджер
@artalar подскажи плиз а почему компонент при правках каждый раз рендерится
const RowColumnCmp = ({ id }) => {
 const column = useAtom(itemsState, (items) => items[id] || {}, [id]);

 return (
   <RowColumn>
     <ColumnEmptyCmp />
   </RowColumn>
 );
};


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

И

Илья in Reatom — стейт-менеджер
Вроде специально ид передаю
источник
2020 August 22

AI

Artsiom Ivanov in Reatom — стейт-менеджер
Илья
Вот как думаете как лушче структуру организовать?

const first = {
 rowsOrder: ['2', '1', '3'],
 items: {
   2: {
     type: 'row',
     id: '2',
   },
   1: {
     type: 'row',
     id: '1',
   },
   3: {
     type: 'row',
     id: '3',
     columns: ['6', '7'],
   },
   6: {
     type: 'column',
     id: '6',
   },
   7: {
     type: 'column',
     id: '7',
   },
 },
};

const second = {
 items: {
   2: {
     type: 'row',
     id: '2',
     order: 1,
     parentId: 0,
   },
   1: {
     type: 'row',
     id: '1',
     order: 3,
     parentId: 0,
   },
   3: {
     type: 'row',
     id: '3',
     order: 2,
     parentId: 0,
   },
   6: {
     type: 'column',
     id: '6',
     order: 1,
     parentId: 3,
   },
   7: {
     type: 'column',
     id: '7',
     order: 2,
     parentId: 3,
   },
 },
};
хранить в масиве, для быстрого доступа по ID - сделать отдельный мемоиз селектор (хз как это на Реатоме будет).
Мб стоит расписать, что вы хотите деалать с этими данными и как часто, но для общего случая - самый простой вариант(с масивом), самый правильный
источник

RA

Ruslan Abdullaev in Reatom — стейт-менеджер
@artalar а есть где-нибудь пример использования Reatom 2 на фьючерах?
источник

a

artalar in Reatom — стейт-менеджер
Ruslan Abdullaev
@artalar а есть где-нибудь пример использования Reatom 2 на фьючерах?
Нет
источник

a

artalar in Reatom — стейт-менеджер
Ruslan Abdullaev
@artalar а есть где-нибудь пример использования Reatom 2 на фьючерах?
источник

И

Илья in Reatom — стейт-менеджер
@artalar а есть что-нить как ускорить убрать лишние запуски используя атом
const column = useAtom(itemsState, (items) => items[id] || {}, [id]);

или нет? или не туда смотрю это все ок?
источник