Size: a a a

2020 July 23

NN

Nikita N. in ☄️ effector
Но кажется, что после этого, код не будет срабатывать вообще.
Есть страница А на ней есть виджет с эффектором и есть страница Б на нем нет эффектора. Клиент открывает страницу Б, код в виджете не исполняется, потому, что лениво загружается, потом перешел на страницу А. Код загрузился, исполнился. Стейт заполнился. Все ок. Переходит на страницу Б и код теперь тоже выполняется все равно.
И кажется если очищать ноду, то код потом в виджете не будет реинициализироваться.
источник

NN

Nikita N. in ☄️ effector
Я конечно щас попробую очищать ноду, после того как отдал страницу. Но если после этого все будет норм работать, то я походу не умею в теорию и не понимаю как работает js
источник

NN

Nikita N. in ☄️ effector
источник

NN

Nikita N. in ☄️ effector
1. clearNode не решает траблу, эвент теперь вызовает код в компоненте постоянно, даже если компонент не юзают. Что вроде логично, скоуп хоть и дропнут, но связи вроде остаются?
2. если компонент лези, то при первой загрузке, компонент не успевает загрузиться и выпадает ошибка выше
источник

NN

Nikita N. in ☄️ effector
Кажется вторую траблу можно решить, если просто обойти все виджеты которые лези и дождаться пока импорт зарезолвится. А вот первую как решить не понятно, накидывать гуард? А в scope прокидывать имена виджетов чтоб и тип каждый виджет, если видет свое имя, то должен реагировать? @ZeroBias
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikita N.
Но кажется, что после этого, код не будет срабатывать вообще.
Есть страница А на ней есть виджет с эффектором и есть страница Б на нем нет эффектора. Клиент открывает страницу Б, код в виджете не исполняется, потому, что лениво загружается, потом перешел на страницу А. Код загрузился, исполнился. Стейт заполнился. Все ок. Переходит на страницу Б и код теперь тоже выполняется все равно.
И кажется если очищать ноду, то код потом в виджете не будет реинициализироваться.
так а что такое «исполняется всё равно», как это проявляется?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
сущности эффектора это просто объекты, сами по себе они не подразумевают ситуации «что то всё равно работает»
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
любые протекающие в системе процессы обозначаются явно, например постоянный рефетч данных, зацикленный сам на себя можно активировать через guard, чтобы отключать его на время неактивности виджета
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
guard({
 source: fetchWidgetDataFx.doneData,
 filter: widgetActive,
 target: fetchWidgetDataFx
})
источник

NN

Nikita N. in ☄️ effector
🚀🔬 🚀🔬🚀🔬
так а что такое «исполняется всё равно», как это проявляется?
евент startServer вызывает логику в моем виджете, даже если виджет не рендерится
источник

NN

Nikita N. in ☄️ effector
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikita N.
евент startServer вызывает логику в моем виджете, даже если виджет не рендерится
guard({
 source: startServer,
 filter: widgetActive,
 target: someWidgetLogic
})


https://effector.now.sh/docs/api/effector/guard
источник

NN

Nikita N. in ☄️ effector
а что делает widgetActive? это gate?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
любой boolean стор который обозначает статус активности виджета
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
можно gate.status, если это тебе подходит, можно просто стор создать
источник

NN

Nikita N. in ☄️ effector
но помоему это не сработает, просто потому, что сначала вызывается allStettled, а потом renderToString()
источник

NN

Nikita N. in ☄️ effector
на момент вызова allSettled виджеты же еще не отрендерились, а значит виджет из энактив
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
я не говорю про гейт, я говорю про стор
источник

NN

Nikita N. in ☄️ effector
да я понимаю что стор, но я не могу придумать нормальный способ этому стору true поставить
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikita N.
да я понимаю что стор, но я не могу придумать нормальный способ этому стору true поставить
а чем определяется, нужен виджет или нет?
источник