我已经四处搜寻,不确定是否可行。本质上,我想使用非表单值的状态挂钩来通过YUP验证Formik表单。
validationSchema={Yup.object({
comments: Yup.string()
.when(approvalState, {
is: false,
then: Yup.string().required('Comments are required when denying an approval.'),
}),
})}
这是表单字段,它本质上是一个文本框:
这是“提交”按钮,它将状态值更改为true:
<button className='buttonPrimary' type='submit' onClick={()=> setApprovalState(true)} disabled={formik.isSubmitting}>Approve</button>
这是另一个也提交的按钮,将状态值更改为false:
<button className={`buttonSecondary ${styles.marginRight}`} type='submit' onClick={()=> setApprovalState(false)} disabled={formik.isSubmitting}>Deny</button>
状态值可以很好地更新,是否可以根据某种状态有条件地根据需要验证文本框?
答案 0 :(得分:1)
如果Array
(
[0] => Array
(
[0] => first
[1] => 32
)
)
Array
(
[0] => Array
(
[0] => first
[1] => 11
)
)
的格式为福克,您的解决方案将起作用:
approvalState
或者,您可以执行以下操作:
Yup.object({
comments: Yup.string()
.when('approvalState', { // Change approvalState to string
is: false,
then: Yup.string().required('Comments are required when denying an approval.'),
}),
})