Size: a a a

2020 July 28

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
как вариант)
источник

DS

Dmitriy Shuleshov in ☄️ effector
Nikita Tkachuk
const teamUpdated = sample({
 source: $teams,
 clock: editEmployeeTeam,
 fn: (teams, teamId) => teams.find((team) => teamId === team.id),
})

export const $employee = restore<Employee>(fetchEmployeeFx.doneData, null)
 .reset(InitGate.close)
 .on(teamUpdated, (store, team) => ({ ...store, team }))

кажется так лучше чем так:

sample({
 source: {
   store: $employee,
   teams: $teams,
 },
 clock: editEmployeeTeam,
 fn: ({ store, teams }, teamId) => ({
   ...store,
   teamId,
   team: teams.find((team) => teamId === team.id),
 }),
 target: $employee,
})
Предпочитаю ресет в конце чейна😒
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
я думаю это не принципиально) если тебе так удобнее то почему бы и нет
источник

NT

Nikita Tkachuk in ☄️ effector
Dmitriy Shuleshov
Предпочитаю ресет в конце чейна😒
хм, не задумывался об этом, с одной стороны логично, но с другой стороны так reset возле initialValue с которым они связаны
источник

🦜

🦜 in ☄️ effector
Dmitriy Shuleshov
Предпочитаю ресет в конце чейна😒
предпочитаю ресет при создании стора
источник

DT

Daniil Tchernyavsky in ☄️ effector
Напомните, тут уже был тред, с хот релоад/реакт рефреш и сторами? По факту после изменения будет сейчас у меня цеплятся дефолт сторы. Как вы решали такое? Домен на hot module accept или как там оно называется цепляли?
источник

🦜

🦜 in ☄️ effector
Daniil Tchernyavsky
Напомните, тут уже был тред, с хот релоад/реакт рефреш и сторами? По факту после изменения будет сейчас у меня цеплятся дефолт сторы. Как вы решали такое? Домен на hot module accept или как там оно называется цепляли?
кто-то писал, но решения не было вроде
источник

🦜

🦜 in ☄️ effector
решение в лоб это через setState
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Daniil Tchernyavsky
Напомните, тут уже был тред, с хот релоад/реакт рефреш и сторами? По факту после изменения будет сейчас у меня цеплятся дефолт сторы. Как вы решали такое? Домен на hot module accept или как там оно называется цепляли?
да, через домен
источник

DT

Daniil Tchernyavsky in ☄️ effector
🚀🔬 🚀🔬🚀🔬
да, через домен
А что - то ещё кроме домена требуется?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Переслано от 🚀🔬 🚀🔬🚀🔬...
import {domain} from 'effector-next'

const states = window.__DEV__STATES__ = window.__DEV__STATES__ || {}

domain.onCreateStore(store => {
 if (!store.sid) return
 if (store.sid in states) {
   const {defaultState, actual} = states[store.sid]
   if (store.defaultState === defaultState) {
     store.setState(actual)
   } else {
     states[store.sid] = {
       defaultState: store.defaultState,
       actual: store.getState(),
     }
   }
 } else {
   states[store.sid] = {
     defaultState: store.defaultState,
     actual: store.getState(),
   }
 }
 store.updates.watch(value => {
   states[store.sid].actual = value
 })
})


при пересоздании стора с уже имеющимся sid, апдейтнуть его значение на основе уже сохранённого состояния при условии, что дефолтное состояние стора не изменилось (оно хранится в store.defaultState)
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
effector-next тут просто как createDomain используется
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Daniil Tchernyavsky
А что - то ещё кроме домена требуется?
бабель плагин добавить в конфиг https://effector.now.sh/docs/api/effector/babel-plugin
источник

DT

Daniil Tchernyavsky in ☄️ effector
Ага, его добавил.
источник

DT

Daniil Tchernyavsky in ☄️ effector
Окей, поковыряю тогда, спасибо
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
бонусом проект оказывается подготовлен к ssr 🌚
источник

ф

фильтруй мысли... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
Переслано от 🚀🔬 🚀🔬🚀🔬
import {domain} from 'effector-next'

const states = window.__DEV__STATES__ = window.__DEV__STATES__ || {}

domain.onCreateStore(store => {
 if (!store.sid) return
 if (store.sid in states) {
   const {defaultState, actual} = states[store.sid]
   if (store.defaultState === defaultState) {
     store.setState(actual)
   } else {
     states[store.sid] = {
       defaultState: store.defaultState,
       actual: store.getState(),
     }
   }
 } else {
   states[store.sid] = {
     defaultState: store.defaultState,
     actual: store.getState(),
   }
 }
 store.updates.watch(value => {
   states[store.sid].actual = value
 })
})


при пересоздании стора с уже имеющимся sid, апдейтнуть его значение на основе уже сохранённого состояния при условии, что дефолтное состояние стора не изменилось (оно хранится в store.defaultState)
а __DEV__STATES__ откуда?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
так он же в начале примера прописывается
источник

OR

Oleg Rizhkov in ☄️ effector
const states = window.__DEV__STATES__ = window.__DEV__STATES__
🤔
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Oleg Rizhkov
const states = window.__DEV__STATES__ = window.__DEV__STATES__
🤔
|| {} забыл
источник