#reactjs #validation #formik #yup
#reactjs #проверка #formik #ага
Вопрос:
Скажем, у меня есть Yup.string()
для начала.
Затем, в какой-то момент, как в цикле, я хочу эффективно добавить к нему required
правило:
Yup.string().required('This field is required')
.
И, возможно, затем добавьте некоторые .email
проверки.
Я пробовал этот способ, но, похоже, не сработал:
function validationSchemaConstructor(question) {
const schema = Yup.string();
question.validation_rules.forEach(rule => {
if ("is_required" in rule) {
schema.required("Hey man nice shot");
}
});
return schema;
}
Ответ №1:
Ах, моя ошибка — мне нужно снова назначить schema
, потому что цепочка в целом работает, возвращая объект снова:
function validationSchemaConstructor(question) {
let schema = Yup.string();
question.validation_rules.forEach(rule => {
if ("is_required" in rule) {
schema = schema.required("Hey man nice shot"); // mistake here!
}
});
// un-comment to test dynamically adding additional rule
// schema = schema.email("email plesss");
return schema;
}
Хотя не уверен, должен ли я где-то использовать clone()
.
Пожалуйста, посоветуйте, есть ли лучший способ 🙂