Size: a a a

2020 March 25

MA

Maxim Antsiferov in ☄️ effector
BARSOOQUE
https://share.effector.dev/9S67xCMZ
Вот так? Фиксится бесполезная функция и ts, но всё равно выглядит как-то костыльно
я сейчас так и сделал)
источник

MA

Maxim Antsiferov in ☄️ effector
но тоже кажется, что костыльно
источник

VK

Valeriy Kobzar in ☄️ effector
yumaa verdin
- имхо искусственно вызывать исключение при первом использовании ну такое...
- значение счётчика 0 не сохранится
- reset не будет работать
первичное значение нет смысла сохранять, т.к. оно initialState никогда не потеряется никуда
источник

VK

Valeriy Kobzar in ☄️ effector
yumaa verdin
а зачем троттлить? реально есть польза? может мне тоже прикрутить
тротлить нужно обязательно сохранение в локалсторадж, это особенно заметно улучшает ситуацию при массовых сохранениях
источник

VK

Valeriy Kobzar in ☄️ effector
Andrei Kholkin
сделал по тупому, но рендеров не уменьшилось и проблема осталась
вообще, плохая практика перекалькулировать данные в рендере
что тебе мешает подготовить их до рендера и прокинуть в компонент в нужном виде?
источник

З

Завтра in ☄️ effector
Valeriy Kobzar
тротлить нужно обязательно сохранение в локалсторадж, это особенно заметно улучшает ситуацию при массовых сохранениях
а потом юзер невовремя закрывает страницу
источник

VK

Valeriy Kobzar in ☄️ effector
в рендере, разве что можно пробежаться простым мапом, чтобы заменить какие то поля компонентами
источник

VK

Valeriy Kobzar in ☄️ effector
Завтра
а потом юзер невовремя закрывает страницу
ну во-первых таких критически важных данных просто не бывает, которые надо складывать в локалсторадж
источник

VK

Valeriy Kobzar in ☄️ effector
а во-вторых свет тоже могут вырубить в любой момент
и даже без тротла данные могут не успеть попасть в хронилку
источник

З

Завтра in ☄️ effector
дефолтная ситуация - юзер торопился, что-то сделал и сразу закрыл страницу
источник

VK

Valeriy Kobzar in ☄️ effector
так что не страшно, таймаут подбирается в зависимости от критичности данных тоже
источник

VK

Valeriy Kobzar in ☄️ effector
кроме того 250мс по умолчанию, это 4 раза с кекунду
ты до cmd-Q/alt-f4 дольше будешь пальцы тянуть :)))
источник

VK

Valeriy Kobzar in ☄️ effector
а для особо критичных сторов с синком в локалсторадж можно вешать хук window.onbeforeunload
и чекать состояние всех синкающихся сторов
источник

MA

Maxim Antsiferov in ☄️ effector
Эти две записи идентичные?
// 1
export const $sessionId = parseTokenFx.done.map(({result}) => result.sessionId);

// 2
const $sessionId = createStore(null)
 .on(parseTokenFx.done, (_, payload) => payload.result.sessionId);
источник

VK

Valeriy Kobzar in ☄️ effector
Завтра
дефолтная ситуация - юзер торопился, что-то сделал и сразу закрыл страницу
источник

ЕГ

Егор Гуща in ☄️ effector
Maxim Antsiferov
Эти две записи идентичные?
// 1
export const $sessionId = parseTokenFx.done.map(({result}) => result.sessionId);

// 2
const $sessionId = createStore(null)
 .on(parseTokenFx.done, (_, payload) => payload.result.sessionId);
Посмотри внимательнее на 1 вариант, ты мапишь эвент следовательно ты получишь эвент, а не стор
источник

I

Ivan in ☄️ effector
Maxim Antsiferov
Эти две записи идентичные?
// 1
export const $sessionId = parseTokenFx.done.map(({result}) => result.sessionId);

// 2
const $sessionId = createStore(null)
 .on(parseTokenFx.done, (_, payload) => payload.result.sessionId);
https://github.com/zerobias/effector/blob/5bfc8ef5b5d7364b3a2528bcce18f4afea3b662f/src/effector/createUnit.js#L125
.done - это ивент
.map ивента возвращает новый ивент
источник

MA

Maxim Antsiferov in ☄️ effector
Понял, спасибо
источник

MA

Maxim Antsiferov in ☄️ effector
Там значит restore надо использовать?
источник

ЕГ

Егор Гуща in ☄️ effector
Maxim Antsiferov
Там значит restore надо использовать?
Можно  restore, forward и это не все

Ты опиши задачу
источник