Size: a a a

2020 October 15

DP

Dmitry Plyaskin in ☄️ effector
Yan👀 Lobaty
Тут такая штука, что чтение исходников эффектора не способствует более быстрому пониманию работы с ним)
я для другого читал их, с этим кейсом никак не связано
источник

YL

Yan👀 Lobaty in ☄️ effector
Окей)
Тогда давай репл как оказывается словами все описывать сложновато выходит
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitry Plyaskin
вопрос, при определенной последовательности событий надо вызвать событие, как это можно сделать?

допустим есть события changeId и loadMessages, loadMessages может происходить постоянно, changeId нет, мне нужно так changeId -> loadMessages -> myEvent
сэмпл эвента эвентом не срабатывает пока source не был вызван хотя бы раз
источник

ф

фильтруй мысли... in ☄️ effector
Dmitry Plyaskin
возможно, вы не так понял, мне не нужно вызывать load, возможно нейминги не точные дал, load - это когда уже произошла загрузка
состояния надо хранить явно, в сторах... создавай вспомогательные сторы, булен-сторы, сторы с данными
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitry Plyaskin
вопрос, при определенной последовательности событий надо вызвать событие, как это можно сделать?

допустим есть события changeId и loadMessages, loadMessages может происходить постоянно, changeId нет, мне нужно так changeId -> loadMessages -> myEvent
поэтому для описанной ситуации подходит такой вариант:

sample({
 source: changeId,
 clock: loadMessages,
 target: myEvent
})
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
читается как «при срабатывании loadMessages, если changeId был вызван хотя бы раз, взять последние данные из changeId и вызвать с ними myEvent»
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
при этом у данной комбинации нет сброса, то есть после первого срабатывания changeId это будет работать как обычный форвард. поэтому если нужно что-то сложнее описанного выше, то вероятно, описание задачи было неполным) в таких случаях оптимальнее создавать состояние явно, через стор
источник

DP

Dmitry Plyaskin in ☄️ effector
https://share.effector.dev/LspbBcU3
примерно воспроизвел то что мне нужно, пришлось закостылять, в моем кейсе не известно когда сработает loadMessage
надо нажать на кнопку, в логе будет показан какой момент мне нужен
источник

🦜

🦜 in ☄️ effector
https://eslint.org/docs/rules/no-restricted-imports

Кстати, можно добавить это правило для ssr
источник

c⁣

createStore<🦉>... in ☄️ effector
о
ты это хорошо придумал!
источник

DP

Dmitry Plyaskin in ☄️ effector
Dmitry Plyaskin
https://share.effector.dev/LspbBcU3
примерно воспроизвел то что мне нужно, пришлось закостылять, в моем кейсе не известно когда сработает loadMessage
надо нажать на кнопку, в логе будет показан какой момент мне нужен
хотя пока писал, пришла идея, как это через вотчи сделать
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitry Plyaskin
хотя пока писал, пришла идея, как это через вотчи сделать
в целом нормальный подход, сложные моменты сначала делать как понятнее
источник

DS

Dmitriy Shuleshov in ☄️ effector
Типа что б из /ssr линт заставлял?
источник

YL

Yan👀 Lobaty in ☄️ effector
Dmitry Plyaskin
хотя пока писал, пришла идея, как это через вотчи сделать
guard({
source: changeId,
filter: $messages.map((msgs) => msgs.length === 1),
target: NuzhoPoymatEtotMoment
})
источник

YL

Yan👀 Lobaty in ☄️ effector
если я правильно понял задумку)
источник

DP

Dmitry Plyaskin in ☄️ effector
Yan👀 Lobaty
guard({
source: changeId,
filter: $messages.map((msgs) => msgs.length === 1),
target: NuzhoPoymatEtotMoment
})
там не обязательно один месседж может быть после смены айди
источник

DP

Dmitry Plyaskin in ☄️ effector
может не быть, могут быть сотни
источник

🦜

🦜 in ☄️ effector
Dmitriy Shuleshov
Типа что б из /ssr линт заставлял?
да
источник

YL

Yan👀 Lobaty in ☄️ effector
Dmitry Plyaskin
там не обязательно один месседж может быть после смены айди
я исходил из твоего примера))
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
короче всё упирается в то, что условие задачи выдаётся порциями)
источник