Size: a a a

2020 June 04

AM

Alexey Malinin in ☄️ effector
Переслано от Alexey Malinin
const [oilField, nodeColors] = useStore(combine(oilField$, nodeColors$));
источник

AM

Alexey Malinin in ☄️ effector
Переслано от Ivan
ну и на каждый рендер создаешь новый стор
источник

AM

Alexey Malinin in ☄️ effector
комбайн в рендер тащишь)
источник

AM

Alexey Malinin in ☄️ effector
Переслано от Igor
комбайн инлайновый
источник

AM

Alexey Malinin in ☄️ effector
Переслано от Ivan
зочем
источник

AM

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

TK

Tauka Kunzhol in ☄️ effector
@doasync так он не оптимизирует? я уже гуглить начал, но не нашел ничего внятного)
источник

AM

Alexey Malinin in ☄️ effector
Tauka Kunzhol
@doasync так он не оптимизирует? я уже гуглить начал, но не нашел ничего внятного)
По идее, при каждом рендере при использовании useState(() => doWork()) движок создаёт новую функцию () => doWork(), скорее всего она будет собрана GC ещё в молодом поколении. Другое дело, что она скорее всего не заJITится, но всё равно будет аллоцирована (по крайней мере её скоуп)
источник

c⁣

createStore<🦉>... in ☄️ effector
Alexey Malinin
Переслано от Alexey Malinin
const [oilField, nodeColors] = useStore(combine(oilField$, nodeColors$));
нельзя создавать сторы в компонентах
источник

c⁣

createStore<🦉>... in ☄️ effector
у тебя будет на каждый рендер новый стор
источник

c⁣

createStore<🦉>... in ☄️ effector
Alexey Malinin
Переслано от Alexey Malinin
const [oilField, nodeColors] = useStore(combine(oilField$, nodeColors$));
const $fields = combine([$oilField, $nodeColors])

function Component() {
 const [oilField, nodeColors] = useStore($fields)
}
источник

R

Ruslan 🌀 in ☄️ effector
Tauka Kunzhol
@doasync так он не оптимизирует? я уже гуглить начал, но не нашел ничего внятного)
источник

R

Ruslan 🌀 in ☄️ effector
источник

AM

Alexey Malinin in ☄️ effector
createStore<🦉> ⁣
const $fields = combine([$oilField, $nodeColors])

function Component() {
 const [oilField, nodeColors] = useStore($fields)
}
Спасибо. Уже сделал так, когда увидел это: https://github.com/zerobias/effector/blob/master/src/react/useStore.ts#L18

Я просто ожидал, что там берётся лишь первое значение (как в useState)
источник

TK

Tauka Kunzhol in ☄️ effector
спасибо, но без ссылки на jsperf сложно понять о чем этот тред
источник

R

Rafael 🦠 in ☄️ effector
Kirill Suvorov
Всем привет!
Подскажите пожалуйста, можно ли где-то посмотреть хорошие практики по тестированию с эффектором?

У меня в проекте довольно много логики по реагированию на различные эвенты. Но при написании тестов есть проблемы:
1) В интеграционных тестах компонентов нужная логика не успевает отрабатывать. Можно ли как-то дожидаться их?
2) среда ругается, что изменения ведущие к обновлению страницы должны быть заключены в act. Но эти изменения происходят вне теста и порой даже после последней строки в тесте. Как это можно исправить?
присоединяюсь к вопросам
источник

DS

Dmitriy Shuleshov in ☄️ effector
Alexey Malinin
Спасибо. Уже сделал так, когда увидел это: https://github.com/zerobias/effector/blob/master/src/react/useStore.ts#L18

Я просто ожидал, что там берётся лишь первое значение (как в useState)
Так если даже бралось бы первое, каким образом ты представляешь превент вызова combine, который мейкает новый стор?
источник

AM

Alexey Malinin in ☄️ effector
Dmitriy Shuleshov
Так если даже бралось бы первое, каким образом ты представляешь превент вызова combine, который мейкает новый стор?
через () => comine() 🙂
источник

DS

Dmitriy Shuleshov in ☄️ effector
Alexey Malinin
через () => comine() 🙂
А ну просто лейзи инита нету. А ты ожидал его?
источник

AM

Alexey Malinin in ☄️ effector
Dmitriy Shuleshov
А ну просто лейзи инита нету. А ты ожидал его?
Не ожидал, но словил тупняка и сделал его сам 🙂
источник