javascript - 如何使用带有yup的react hook验证一个对象中的两个字段
问题描述
{
label: 'Room',
name: 'room',
rule: yup.array(yup.object()).required(),
renderer: (data: any) => {
const { control, register, errors } = useFormContext();
return (
<div className="block w-full">
{
teacherRole && teacherRole.map((item, idx) => (
<div key={idx} className="flex pb-2 items-center">
<SelectPicker
placeholder={'TEACHER'}
data={
teacherList && teacherList.map(x => (
{ label: x.name, value: x.id }
))
}
onChange={(val) => control.setValue('room', setTeacher(val, idx))}
value={control.getValues()['selectTeacher']}
style={{ width: '100%' }}
/>
<span className="px-2 leading-8 text-2xl">-</span>
<SelectPicker
data={[
{ label: 'Admin', value: 'ROLE_ADMIN' },
{ label: 'Teacher', value: 'ROLE_TEACHER' },
{ label: 'Student', value: 'ROLE_STUDENT' },
]}
placeholder={'Role'}
onChange={(val) => control.setValue('room', setRole(val, idx))}
value={control.getValues()['selectRole']}
style={{ width: '100%', paddingRight: '.3rem' }}
/>
</div>
))
}
</div>
)
}
}
我在这里要做的是验证老师和房间是空的。因为当我尝试提交表单时,即使它为空,它也会提交。
我想要的是在角色或老师为空时添加验证,应该出现错误消息。
解决方案
我不知道的类型,teacher
所以role
我假设它。希望这位前任有所帮助。
Yup.array().of(
Yup.object().shape({
teacher: Yup.string().required("teacher required"),
role: Yup.string()
.required("role required")
})
)
})
推荐阅读
- java - 无法找到或加载主类 com.sun.tools.internal.xjc.Driver
- c# - 无法将类型“bool”隐式转换为“Microsoft.AspNetCore.Mvc.ActionResult”
- pandas - 熊猫在逗号分隔的列中找到平均值
- python - Python:MixCloud 和 Selenium Firefox 的一个奇怪案例。如何加速硒?
- python - 从无序点获取多边形
- php - php/html的问题
- python - 为什么在 VS Code 的集成 Python 调试中启动多个调试线程?
- r - 从 R 中的 zip 文件加载 csv 文件导致输入错误中没有可用的行
- docker - 为 Zookeeper 和 Spring Cloud 编写 Docker - 我的服务未连接到 Zoo
- html - place-items 和 align-items 有什么区别?