Size: a a a

2020 September 16

AR

Artyom Rymarchik in ☄️ effector
Andrey
пушто валидация не срабатывает при каждом ченже, стоило описать это в доке 😬
попробуй

form.fields.name.set(…)
form.validate()/form.fields.name.validate()
получается перед сабмитом надо явно вызывать validate? то что не при каждом чендже отрабатывает допустим ок, но перед сабмитом мб автоматом валидировать?
источник

ф

фильтруй мысли... in ☄️ effector
Artyom Rymarchik
с валидацией прям беда какая-то. isValid не меняется, submitted не тригерится
а, типо по умолчанию false, пока validate не запустишь
источник

AR

Artyom Rymarchik in ☄️ effector
фильтруй мысли
дефолтное значение?
походу
источник

A

Andrey in ☄️ effector
Artyom Rymarchik
получается перед сабмитом надо явно вызывать validate? то что не при каждом чендже отрабатывает допустим ок, но перед сабмитом мб автоматом валидировать?
хороший вопрос, тут опять же надо подумать
насчет автомата - сомнительно, но вот отдельный юнит для этого - думаю, правда стоит сделать
источник

A

Andrey in ☄️ effector
фильтруй мысли
в string(arg) что передаётся?
там примерно везде одинаково, typeDef(initial)
акромя массива, там первым аргументом идет схема отдельного элемента, а потом уже дефолт
источник

ф

фильтруй мысли... in ☄️ effector
Andrey
там примерно везде одинаково, typeDef(initial)
акромя массива, там первым аргументом идет схема отдельного элемента, а потом уже дефолт
может отдельным методом .init()?
источник

ф

фильтруй мысли... in ☄️ effector
и .optional()
источник

ф

фильтруй мысли... in ☄️ effector
чтобы снимать required флаг
источник

ф

фильтруй мысли... in ☄️ effector
я так понимаю, само правило это callable object со свойствами, то есть юнит
источник

ф

фильтруй мысли... in ☄️ effector
и любая глобальная функция валидации является его фабрикой
источник

A

Andrey in ☄️ effector
фильтруй мысли
может отдельным методом .init()?
а какой кейс бы это решало?)

сейчас дефолты - опциональны
(хотя при этом есть неявные дефолты, в виде пустых строк, нулей, итп)
источник

ф

фильтруй мысли... in ☄️ effector
const rule = string().required()
rule.optional()
rule.init('blabla')
источник

A

Andrey in ☄️ effector
фильтруй мысли
я так понимаю, само правило это callable object со свойствами, то есть юнит
само правило это объект с валидатором и парой флагов)

но хранятся они в инстансе типа
на каждое правило, новый инстанс, который не влияет на предыдущие
источник

ф

фильтруй мысли... in ☄️ effector
Andrey
а какой кейс бы это решало?)

сейчас дефолты - опциональны
(хотя при этом есть неявные дефолты, в виде пустых строк, нулей, итп)
а как у тебя это реализовано тогда? 😄
источник

A

Andrey in ☄️ effector
фильтруй мысли
а как у тебя это реализовано тогда? 😄
если нет явного дефолта, ставится неявный)
ибо иначе, значение филда могло бы быть андефайнд
источник

ф

фильтруй мысли... in ☄️ effector
Andrey
само правило это объект с валидатором и парой флагов)

но хранятся они в инстансе типа
на каждое правило, новый инстанс, который не влияет на предыдущие
новый инстанс? а зачеем?
источник

A

Andrey in ☄️ effector
фильтруй мысли
новый инстанс? а зачеем?
чтобы предыдущие не мутировать
источник

A

Andrey in ☄️ effector
Andrey
чтобы предыдущие не мутировать
чтобы можно было из кастомных рулов набирать любые типы, без влияния на первоначальные
источник

ф

фильтруй мысли... in ☄️ effector
Andrey
чтобы предыдущие не мутировать
field.set() по твоему не мутация?
источник

A

Andrey in ☄️ effector
фильтруй мысли
field.set() по твоему не мутация?
const positive = number().positive()

const age = positive.max(100)

const legalAge = age.min(18)

тут, каждый их этих валидаторов можно использовать отдельно, и расширять в любую сторону)

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