我有一些动态字段,它们是根据一些钩子状态删除/添加的。我有从列表中删除的字段,但它们的错误仍然可见。我已经尝试过clearErrors, unregister
来删除它,但没有任何效果。
有可能吗?reset
确实有效,但它也重置了整个表单。
我正在使用react-hook-form
的v6,无法将其升级到7。这暂时是不可能的。
yup
验证器正与其一起用于验证。
我陷入了同样的问题,这似乎是一个bug,如果你尝试注销控件,它不会成功。
删除控件时,请注销并重置特定控件。
const handleRemoveRow = (control) => {
//all code logic and stuff
//................
unregister(control);
reset({ [control]: undefined });
};
之后,在useEffect钩子上假设您有一个主要的表单状态,将值重新分配回来。
useEffect(() => {
const keyValue = getValues();
keyValues.map(({controlName,Value}) => {
setValue(controlName, Value);
});
}, [getValues()]);
这是一个更多的伪代码,但我希望你明白这个概念。