Size: a a a

2020 October 17

c⁣

createStore<🦉>... in ☄️ effector
mg901
Несмотря на то, что getState запрещается юзать в Effector этот приём используется в хуке useStore.  Так же, нашёл getState в исходниках effector-react-form. Да, я знаю, что это крайне небезопасно, и приводит к состоянию гонки данных. Может подскажете, как обойти эту ситуацию в случае с effect-react-forms? Ведь сама по себе библиотека прекрасна и помогает писать гораздо меньше кода.
Для интеграции с вьюхой в библиотечном коде использование getState допустимо
источник

m

mg901 in ☄️ effector
createStore<🦉> ⁣
Для интеграции с вьюхой в библиотечном коде использование getState допустимо
Спасибо, Сергей.)
источник

ВК

Виктор Крафтер... in ☄️ effector
привет. ссылка Usage with typescript здесь https://github.com/effector/effector#learn-more ведет на 404, а куда должна?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
сейчас поправлю
источник

c⁣

createStore<🦉>... in ☄️ effector
Валидацию ссылок бы добавить
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
так это была корректная ссылка
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
просто адреса меняются
источник

c⁣

createStore<🦉>... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
так это была корректная ссылка
Ну так для этого и валидация. Чтобы при изменении адреса страницы, пробежать по всем ссылкам и проверить, что они ведут не на 404
источник

NB

Not Dan, But... in ☄️ effector
Хочу протестировать компонент. У меня всё устроено в проекте так, что достаточно мало компонентов, которые просто отображают пропсы. Почти везде юзается хук для сорсинга данных из стор + вызов эвентов.
Получается у меня есть возможность только тестить компонент в связке с моделькой данных? Это же ок?
источник

c⁣

createStore<🦉>... in ☄️ effector
Not Dan, But...
Хочу протестировать компонент. У меня всё устроено в проекте так, что достаточно мало компонентов, которые просто отображают пропсы. Почти везде юзается хук для сорсинга данных из стор + вызов эвентов.
Получается у меня есть возможность только тестить компонент в связке с моделькой данных? Это же ок?
можно их разделить и тестировать по отдельности
юнит-тестами
источник

NB

Not Dan, But... in ☄️ effector
createStore<🦉> ⁣
можно их разделить и тестировать по отдельности
юнит-тестами
Т.е. вернуться к smart/dumb cmps? В текущем решении мне нравится, что вьюха привязывается к модели данных прям в том же месте, где написан основной код представления.
источник

c⁣

createStore<🦉>... in ☄️ effector
Not Dan, But...
Т.е. вернуться к smart/dumb cmps? В текущем решении мне нравится, что вьюха привязывается к модели данных прям в том же месте, где написан основной код представления.
нет, тут не будет smart/dumb
источник

m

mg901 in ☄️ effector
Not Dan, But...
Т.е. вернуться к smart/dumb cmps? В текущем решении мне нравится, что вьюха привязывается к модели данных прям в том же месте, где написан основной код представления.
Тут можешь посмотреть как тестировать эффектор
источник

c⁣

createStore<🦉>... in ☄️ effector
Not Dan, But...
Т.е. вернуться к smart/dumb cmps? В текущем решении мне нравится, что вьюха привязывается к модели данных прям в том же месте, где написан основной код представления.
1. компонент определяет пачку своих ивентов сторов, к каким он хочет иметь доступ.
Я именую их в соответствии с задачами view-слоя: loginPressed, emailChanged, $email, $isFormEnabled
2. в модели описывается логика полностью независимо от вьюхи. Я стараюсь писать так, если бы я захотел подключить модель к CLI на nodejs, то мне ничто не помешало бы это сделать
3. в файле init.js я просто соединяю через forward/sample/guard сущности модели и вьюхи.

Этот подход позволяет крайне легко написать тесты на вьюху: просто заполняем сущности вьюхи в тестах(в форке) и смотрим что получилось.

Аналогично с моделью, импортим модель, форкаем, дергаем события, смотрим что в сторах. Изи
источник

c⁣

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

Но лично я в паре рабочих проектов использую этот подход на полную.
источник

NB

Not Dan, But... in ☄️ effector
createStore<🦉> ⁣
1. компонент определяет пачку своих ивентов сторов, к каким он хочет иметь доступ.
Я именую их в соответствии с задачами view-слоя: loginPressed, emailChanged, $email, $isFormEnabled
2. в модели описывается логика полностью независимо от вьюхи. Я стараюсь писать так, если бы я захотел подключить модель к CLI на nodejs, то мне ничто не помешало бы это сделать
3. в файле init.js я просто соединяю через forward/sample/guard сущности модели и вьюхи.

Этот подход позволяет крайне легко написать тесты на вьюху: просто заполняем сущности вьюхи в тестах(в форке) и смотрим что получилось.

Аналогично с моделью, импортим модель, форкаем, дергаем события, смотрим что в сторах. Изи
Да, кажется я понял. Для меня ключевым было: заполняем сущности вьюхи в тестах(в форке)
Видимо, стоило начать с изучения того, что такое форк)
Спасибо!
источник

m

mg901 in ☄️ effector
createStore<🦉> ⁣
1. компонент определяет пачку своих ивентов сторов, к каким он хочет иметь доступ.
Я именую их в соответствии с задачами view-слоя: loginPressed, emailChanged, $email, $isFormEnabled
2. в модели описывается логика полностью независимо от вьюхи. Я стараюсь писать так, если бы я захотел подключить модель к CLI на nodejs, то мне ничто не помешало бы это сделать
3. в файле init.js я просто соединяю через forward/sample/guard сущности модели и вьюхи.

Этот подход позволяет крайне легко написать тесты на вьюху: просто заполняем сущности вьюхи в тестах(в форке) и смотрим что получилось.

Аналогично с моделью, импортим модель, форкаем, дергаем события, смотрим что в сторах. Изи
Ты же недавно говорил, что не юзаешь init
источник

c⁣

createStore<🦉>... in ☄️ effector
mg901
Ты же недавно говорил, что не юзаешь init
у меня он называется contract в одном проекте
в другом view-model

я сейчас назвал его так, чтобы привычнее было. Но ты прав, не стоило путать, ибо смысл и содержимое отличается, от того, о чем пишут здесь в чатах
источник

m

mg901 in ☄️ effector
createStore<🦉> ⁣
у меня он называется contract в одном проекте
в другом view-model

я сейчас назвал его так, чтобы привычнее было. Но ты прав, не стоило путать, ибо смысл и содержимое отличается, от того, о чем пишут здесь в чатах
Можно же одним файлом модели обойтись и всё будет работать отлично
источник