Size: a a a

2021 February 26

c⁣

createStore<🦉>... in ☄️ effector
Vladislav K.
Очень жаль
А можно хотя бы в общих чертах описать словами?
мне показалось, что концепция темплейтов может работать на уровне сущностей эффектора

но там сложно

const $list = createStore([])

const tpl = createListTemplate($list, () => {
 const $counter = createStore(0)
 const increment = createEvent()

 $counter.on(increment, i => i + 1)

 return { $counter, increment }
})


function Item() {
 const { $counter, increment } = useTemplate(tpl)

 return <Button onClick={increment}>{$counter}</Button>
}

function App() {
 const list = useListTemplate($list, tpl, Item)

 return <>{list}</>
}
источник

c⁣

createStore<🦉>... in ☄️ effector
что-то вроде такого
источник

DS

Dmitriy Shuleshov in ☄️ effector
Danila
Хм, есть ощущение, что я попал в ловушку, в которую умудрился даже один раз попасть ну совсем по глупости - когда решил заменить эффекты и стейты реакта сторами и связями эффектора, больно уж большая зависимость вырабатывается от эффектора. Но ведь это по-прежнему сингл-стор, которому есть чётко отведённая роль и не стоит через него делать то, что не стоит делать через сингл-стор. Думаю, что это как раз такая ситуация, но теперь так не хочется ломать все красивые декларативные красоты и переносить всё в хуки
Все верно. Но проблема не в самом эффекторе, а в интеграцию стабильного решения в нестабильный реакт😁 который любит ререндерить
источник

D

Danila in ☄️ effector
Dmitriy Shuleshov
Все верно. Но проблема не в самом эффекторе, а в интеграцию стабильного решения в нестабильный реакт😁 который любит ререндерить
Да а это вообще не при чём
источник

D

Danila in ☄️ effector
Просто эффектор не заменяет локальный стор, потому что он сингл-стейт
источник

c⁣

createStore<🦉>... in ☄️ effector
createStore<🦉> ⁣
мне показалось, что концепция темплейтов может работать на уровне сущностей эффектора

но там сложно

const $list = createStore([])

const tpl = createListTemplate($list, () => {
 const $counter = createStore(0)
 const increment = createEvent()

 $counter.on(increment, i => i + 1)

 return { $counter, increment }
})


function Item() {
 const { $counter, increment } = useTemplate(tpl)

 return <Button onClick={increment}>{$counter}</Button>
}

function App() {
 const list = useListTemplate($list, tpl, Item)

 return <>{list}</>
}
createListTemplate создает новый инстанс каждого стора под каждый элемент списка
useTemplate вытаскивает эти инстансы

внутри коллбека createListTemplate можно использовать связи с внешним миром
источник

D

Danila in ☄️ effector
А это попытка заменить локальный стейт эффектором получилась
источник

DS

Dmitriy Shuleshov in ☄️ effector
Danila
Просто эффектор не заменяет локальный стор, потому что он сингл-стейт
Заменяет, но пока не в реакте
источник

D

Danila in ☄️ effector
По-большому счёту этот список в сингл-стейте не нужен
источник

D

Danila in ☄️ effector
И его логике тоже там особо делать нечего
источник

D

Danila in ☄️ effector
Но кто б мне дал хуки такие же классные как эффекторовские связи
источник

DS

Dmitriy Shuleshov in ☄️ effector
Danila
И его логике тоже там особо делать нечего
Если ты безстрашный могу дать линк на решения которые требуют обктаки практикой🌚
источник

c⁣

createStore<🦉>... in ☄️ effector
Danila
Но кто б мне дал хуки такие же классные как эффекторовские связи
вон выше
источник

c⁣

createStore<🦉>... in ☄️ effector
createStore<🦉> ⁣
мне показалось, что концепция темплейтов может работать на уровне сущностей эффектора

но там сложно

const $list = createStore([])

const tpl = createListTemplate($list, () => {
 const $counter = createStore(0)
 const increment = createEvent()

 $counter.on(increment, i => i + 1)

 return { $counter, increment }
})


function Item() {
 const { $counter, increment } = useTemplate(tpl)

 return <Button onClick={increment}>{$counter}</Button>
}

function App() {
 const list = useListTemplate($list, tpl, Item)

 return <>{list}</>
}
я пытаюсь сделать это
источник

D

Danila in ☄️ effector
Dmitriy Shuleshov
Если ты безстрашный могу дать линк на решения которые требуют обктаки практикой🌚
Пока я не бесстрашный, но могу оказаться отчаяным
источник

D

Danila in ☄️ effector
На середине проекта-то
источник

D

Danila in ☄️ effector
😏
источник

DS

Dmitriy Shuleshov in ☄️ effector
Danila
На середине проекта-то
В реальных проектах я пока делал четкое разделение
Синглтоны в эффекторе
Локалстейт в хуках.

Но желание все заменить на эффектор насколько я понял не только у меня такое жгучее🌚
источник

DS

Dmitriy Shuleshov in ☄️ effector
Danila
Пока я не бесстрашный, но могу оказаться отчаяным
источник

DS

Dmitriy Shuleshov in ☄️ effector
Danila
Пока я не бесстрашный, но могу оказаться отчаяным
https://t.me/effector_ru/193055?single
Решение с форком (лучше)
https://t.me/effector_ru/192998
Решение на фабрике (хуже)
источник