问题描述
我有一些动态字段,它们根据某些挂钩状态被删除/添加。我有从列表中删除的字段,但它们的错误仍然可见。我曾尝试 clearErrors,unregister
删除它,但没有任何效果。
有可能吗? reset
确实有效,但它也会重置整个表单。
我正在使用 react-hook-form
的 v6,但我无法将其升级到 7。暂时无法实现。
yup
验证器与它一起用于验证。
解决方法
我遇到了同样的问题,这似乎是个错误,如果您尝试取消注册控件,它就不会这样做。这是我的做法。
当您移除控件时,请取消注册并重置特定控件。
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()]);
这是更多的伪代码,但我希望你明白这个概念。