【发布时间】:2022-01-13 12:43:59
【问题描述】:
有一个表单包含两个输入,一个字符串和一个数字都是必需的。
这是架构:
const schema = yup.object().shape({
name: yup.string().required(),
age: yup.number().required()
});
之后就是react-hook-form:
const { handleSubmit, reset, control, register, watch } = useForm({
defaultValues: emptyObject,
resolver: yupResolver(schema)
});
如您所见,defaultValues 有 emptyObject。
这里是:
const emptyObject = {
name: '',
age: 0
}
name 部分工作正常,如果该文本框中没有写入任何输入,我无法提交数据,但对于年龄而言,它不需要任何值。我知道它会检查值并发现它是 0 并且它认为有输入。
但是如何改变它以使其工作?尝试使用null,但仍然无法正常工作。
不得不提的是,它是 React with Typescript,所以当年龄设置为 null 时,还有一个界面会抛出错误。
MyData: {
name: string;
age: number;
}
【问题讨论】:
-
不能删除默认值吗?你为什么需要一个?你可以放置一个占位符而不是默认值
标签: javascript reactjs typescript react-hooks react-hook-form