Size: a a a

2021 June 17

c⁣

createStore<🦉>... in ☄️ effector
Подключить бабель мб?
источник

RS

Roman Still in ☄️ effector
Не регрес ли? ощущение что не в ту сторону, ну и плюс надо копать как типы включить в babel-jest
источник

c⁣

createStore<🦉>... in ☄️ effector
Без бабеля не будет норм
источник

c⁣

createStore<🦉>... in ☄️ effector
Замену лучше делать через бабель
источник

RS

Roman Still in ☄️ effector
Ну сейчас вроде все окей, все остальные кейсы работают
источник

s

sccc in ☄️ effector
расскажите как работают вычисления в эффекторе, в семпле я получу обновленное значение из $currentPage или старое?
источник

АХ

Александр Хороших... in ☄️ effector
Новое
источник

АХ

Александр Хороших... in ☄️ effector
Если очень интересно, почему так, то:

https://effector.dev/docs/advanced-guide/computation-priority
источник

s

sccc in ☄️ effector
👍
источник

UT

Unknown T. in ☄️ effector
Привет!
Не пойму, что я делаю не так. Буду благодарен за подсказку.
Есть файл event.ts:
export const event = createEvent();

Есть файл ComponentA.tsx:
import {event} from './event';
function ComponentA() {
   return <Button onClick={() =>event()} />
}

Есть файл ComponentB.tsx:
import {event} from './event';
function ComponentA() {
   event.watch(() => {
       console.log('Event received!');
   })
   // ...
}

Проблема: на одно нажатие кнопки Event received! появляется несколько раз, причем количество всегда разное... Я так понимаю это зависит от того, как ререндерятся компоненты. Как это сделать правильно, чтобы событие в другом компоненте получалось ровно один раз?
источник

DS

Dmitriy Shuleshov in ☄️ effector
Ожидаемое поведение. На каждый вызов event.watch (ререндер) создаётся новая подписка.

Похоже вы пытаетесь решить свою задачу не совсем правильным путем. Опишите задачу пожалуйста
источник

UT

Unknown T. in ☄️ effector
Есть такая структура:
<View>
   <Button/>
   <Card />
</View>

Внутри компонента Card есть ref, через который можно перевернуть карточку: ref.flip(). Я хочу делать это по нажатию кнопки.
источник

c⁣

createStore<🦉>... in ☄️ effector
А обратно перевернуть можно?
источник

UT

Unknown T. in ☄️ effector
Да, сколько угодно раз
источник

UT

Unknown T. in ☄️ effector
Я уже пробовал уносить event.watch в useEffect(..., []) и делать unsubscribe в cleanup функции. Не помогло
источник

UT

Unknown T. in ☄️ effector
Какими-то лютыми костылями через forwardRef и useImperativeHandle удалось поднять это дело и вызывать ref.flip() напрямую из родительского компонента на клик по кнопке. А так хотелось испытать красоту effector...
источник

АХ

Александр Хороших... in ☄️ effector
Ну, эффектор тут не при делах же 🤷‍♂️

А на чем вариант с
useEffect(() => event.watch(() =>  ...), []);
ломался?

Мб в зависимостях юзэффекта чего-то не хватало?
источник

UT

Unknown T. in ☄️ effector
Он ничем не отличался от варианта без useEffect просто. Массив зависимостей был пустой, я рассчитывал, что useEffect будет вызываться после маунта компонента
источник

АХ

Александр Хороших... in ☄️ effector
В каком плане ничем? Также подписки плодились?
источник

UT

Unknown T. in ☄️ effector
Так же на 1 клик вызывалось рандомное количество раз, да
источник