Size: a a a

2020 August 17

꧁岡

꧁倫太郎 岡部꧂... in ☄️ effector
Значит и пендинг слушац не будет
источник

DS

Dmitriy Shuleshov in ☄️ effector
Alexey Anarion
а эффект у меня не прокидывается.
Эффект он вовне. Фабрика предоставляет эвент formValidated - и уже юзер может зафорвардить/загвардить его на свой эффект
пендинг это стор. Ты не можешь просто так взять и его сунуть в jsx
источник

AA

Alexey Anarion in ☄️ effector
const pending = useStore(effectFx.pending)
источник

AA

Alexey Anarion in ☄️ effector
да, там должен быть, грю же, это баг доки
источник

꧁岡

꧁倫太郎 岡部꧂... in ☄️ effector
Alexey Anarion
const pending = useStore(effectFx.pending)
Ты это внутрь своего хука заверни просто
источник

AA

Alexey Anarion in ☄️ effector
пофикшу)
источник

AA

Alexey Anarion in ☄️ effector
꧁倫太郎 岡部꧂
Ты это внутрь своего хука заверни просто
Не уверен что стоит. Результат формы не обязательно эффект, это может быть и эвент и что угодно. Мой концепт был в том чтобы либа только с формой и валидацией работала. Все остальное уже - на стороне пользователя.
Зафорвардить эвент на эффект не сложно зачастую
источник

꧁岡

꧁倫太郎 岡部꧂... in ☄️ effector
источник

꧁岡

꧁倫太郎 岡部꧂... in ☄️ effector
Ну ладно
источник

AA

Alexey Anarion in ☄️ effector
Я думал об этом но решил что так гибче)
источник

꧁岡

꧁倫太郎 岡部꧂... in ☄️ effector
А то в react-hook-form все это есть
источник

DS

Dmitriy Shuleshov in ☄️ effector
꧁倫太郎 岡部꧂
Ты это внутрь своего хука заверни просто
Может  это и нужно, но стоит продумать как сделать эту фичу опциональной, а может и оверхед.
источник

AA

Alexey Anarion in ☄️ effector
Dmitriy Shuleshov
Может  это и нужно, но стоит продумать как сделать эту фичу опциональной, а может и оверхед.
Пока мне кажется что это оверхед и что что происходит с формой после сабмита - слишком специфично может быть. И тут может апи сильно раздуться, если пытаться покрыть эти кейсы, при этом это не будет более удобно чем

forward({
 from: form.formValidated,
 to: effectFx
})
источник

DS

Dmitriy Shuleshov in ☄️ effector
Alexey Anarion
Пока мне кажется что это оверхед и что что происходит с формой после сабмита - слишком специфично может быть. И тут может апи сильно раздуться, если пытаться покрыть эти кейсы, при этом это не будет более удобно чем

forward({
 from: form.formValidated,
 to: effectFx
})
Соглашусь скорее с тобой
источник

З

Завтра in ☄️ effector
Alexey Anarion
Всем привет!
Я тут библиотечку для работы с формами на эффекторе накатал:
https://www.npmjs.com/package/effector-forms

Буду рад если окажется кому полезной (и рад обратной связи).

Делал на основании обобщения своих накопившихся за полтора года разработки на эффекторе кейсов
Честно говоря, не перевариваю монолиты уже 2 года, а тут createForm
источник

З

Завтра in ☄️ effector
+ имхо это идет в разрез с эффектором. он про атомарные сторы, ивенты и вот это все, а тут одной функцией создаем все поля. А потом идут неконсистентные использования combine
Куда лучше бы, на мой взгляд, было юзать что-то типа такого
const $login = createField({
 init: "",
 rules: [required]
})

console.log($login.value, $login.isValid, $login.errors)
источник

AA

Alexey Anarion in ☄️ effector
Завтра
+ имхо это идет в разрез с эффектором. он про атомарные сторы, ивенты и вот это все, а тут одной функцией создаем все поля. А потом идут неконсистентные использования combine
Куда лучше бы, на мой взгляд, было юзать что-то типа такого
const $login = createField({
 init: "",
 rules: [required]
})

console.log($login.value, $login.isValid, $login.errors)
А в чем это дает преимущество помимо того что получается более "атомарное" апи?
источник

DS

Dmitriy Shuleshov in ☄️ effector
Завтра
Честно говоря, не перевариваю монолиты уже 2 года, а тут createForm
createApi тоже не перевариваешь?
источник

AA

Alexey Anarion in ☄️ effector
учитывая то что валидации полей могут быть взаимозависимыми (например пароль и подтверждение пароля) мне сложно представить как это на подобном апи реализовать
источник

AA

Alexey Anarion in ☄️ effector
Завтра
+ имхо это идет в разрез с эффектором. он про атомарные сторы, ивенты и вот это все, а тут одной функцией создаем все поля. А потом идут неконсистентные использования combine
Куда лучше бы, на мой взгляд, было юзать что-то типа такого
const $login = createField({
 init: "",
 rules: [required]
})

console.log($login.value, $login.isValid, $login.errors)
Кроме того, каждое поле будет завернуто в фабрику -  а это больше кода
источник