Size: a a a

2020 June 04

🦜

🦜 in ☄️ effector
Alexey Malinin
const [oilField, nodeColors] = useStore(combine(oilField$, nodeColors$));
комбайн в рендер тащишь)
источник

I

Igor in ☄️ effector
Alexey Malinin
const [oilField, nodeColors] = useStore(combine(oilField$, nodeColors$));
комбайн инлайновый
источник

I

Ivan in ☄️ effector
зочем
источник

AM

Alexey Malinin in ☄️ effector
Ага. Уже увидел
источник

I

Ivan in ☄️ effector
Прежде чем писать что-то своё кастомное, стоит посмотреть почему отваливается у тебя, но не отваливается у других 😏😏😏
Может оказаться, что кастомное не нужно вообще
источник

TK

Tauka Kunzhol in ☄️ effector
Alexey Malinin
const [oilField, nodeColors] = useStore(combine(oilField$, nodeColors$));
интересно как кастомный хук решает это, тут же полюбому он будет создаваться на каждый рендер
источник

AM

Alexey Malinin in ☄️ effector
Tauka Kunzhol
интересно как кастомный хук решает это, тут же полюбому он будет создаваться на каждый рендер
🤷‍♀️. Но вылечил
источник

TK

Tauka Kunzhol in ☄️ effector
понял, () => combine

что-то такое наверное
источник

TK

Tauka Kunzhol in ☄️ effector
типа твой хук принимает лейзи инициализацию
источник

I

Ivan in ☄️ effector
Alexey Malinin
🤷‍♀️. Но вылечил
нене, не вылечил, а сделал костыль, который скрыл свою же ошибку
источник

TK

Tauka Kunzhol in ☄️ effector
Tauka Kunzhol
понял, () => combine

что-то такое наверное
а вообще почему бы и нет, лейзи инит поддерживать это здраво
источник

AM

Alexey Malinin in ☄️ effector
Ivan
Прежде чем писать что-то своё кастомное, стоит посмотреть почему отваливается у тебя, но не отваливается у других 😏😏😏
Может оказаться, что кастомное не нужно вообще
Увидел проблему => залатал локально у себя и обратился к сообществу с просьбой помочь. Сообщество подсказало, где ошибка. О том, что “у других не отваливается” можно узнать лишь спросив. Где я неправ в своих действиях?
источник

AM

Alexey Malinin in ☄️ effector
Ivan
нене, не вылечил, а сделал костыль, который скрыл свою же ошибку
Это называется “сделал быстрое решение своей задачи”
источник

I

Ivan in ☄️ effector
Alexey Malinin
Это называется “сделал быстрое решение своей задачи”
Не совсем, это называется "непонимание как работает combine и useStore"
источник

🦜

🦜 in ☄️ effector
Alexey Malinin
Увидел проблему => залатал локально у себя и обратился к сообществу с просьбой помочь. Сообщество подсказало, где ошибка. О том, что “у других не отваливается” можно узнать лишь спросив. Где я неправ в своих действиях?
лишь спросив?

ну хз.

Тут сразу все увидели ошибку
источник

I

Ivan in ☄️ effector
Alexey Malinin
Увидел проблему => залатал локально у себя и обратился к сообществу с просьбой помочь. Сообщество подсказало, где ошибка. О том, что “у других не отваливается” можно узнать лишь спросив. Где я неправ в своих действиях?
Правильно так: увидел проблему => залез в доки по проблемной функции => увидел свою ошибку и исправил
источник

AM

Alexey Malinin in ☄️ effector
Ivan
Правильно так: увидел проблему => залез в доки по проблемной функции => увидел свою ошибку и исправил
Залез в доки:

https://effector.now.sh/docs/api/effector/combine сказано, что создаёт новый стор. стор из массива из 2-х элементов мало что стоит

https://effector.now.sh/docs/api/effector-react/useStore сказано, что делается подписка на переданный стор и ничего не сказано про “делает новую подписку при изменении самого переданного стора”

Откуда из доки можно было узнать “делает новую подписку при изменении самого переданного стора”? Правильно, только из сорцов. Сорцы != дока
источник

I

Ivan in ☄️ effector
И тут всплывает ещё и непонимание как работает рендер в реакте
источник

🦜

🦜 in ☄️ effector
Alexey Malinin
Залез в доки:

https://effector.now.sh/docs/api/effector/combine сказано, что создаёт новый стор. стор из массива из 2-х элементов мало что стоит

https://effector.now.sh/docs/api/effector-react/useStore сказано, что делается подписка на переданный стор и ничего не сказано про “делает новую подписку при изменении самого переданного стора”

Откуда из доки можно было узнать “делает новую подписку при изменении самого переданного стора”? Правильно, только из сорцов. Сорцы != дока
useStore использует реакт хуки, которые срабатывают на каждый рендер.

combine - функция, вызов которой возвращает новый стор.

совмести эту информацию и поймешь, где проебался
источник

I

Ivan in ☄️ effector
Alexey Malinin
Залез в доки:

https://effector.now.sh/docs/api/effector/combine сказано, что создаёт новый стор. стор из массива из 2-х элементов мало что стоит

https://effector.now.sh/docs/api/effector-react/useStore сказано, что делается подписка на переданный стор и ничего не сказано про “делает новую подписку при изменении самого переданного стора”

Откуда из доки можно было узнать “делает новую подписку при изменении самого переданного стора”? Правильно, только из сорцов. Сорцы != дока
Из доки становится ясно, что комбайн возвращает новый стор.
useStore подписывается на переданный стор.
Реакт на каждый рендер выполняет свою функцию, каждый рендер создаёт новый стор и useStore подписыаается каждый раз заново.
О чем тут вообще можно спорить? Это же совсем база
источник