我们如何知道表单是否被修改为react-hook-form。 任何人都有主意。 我想知道是否更改了任何值并将更新的状态更新为true。
在我将defaultValue提供给useForm({defaultValues:values})之后。 我想通知值何时从defaultValue更新或更改。
答案 0 :(得分:3)
使用isDirty
属性
function YourComponent() {
const { formState } = useForm();
const isFormEdited = formState.isDirty;
....
答案 1 :(得分:0)
您也可以使用 formstate 中的 dirtyFields,检查修改的字段的长度。
const [isEdited, setIsEdited] = useState(false);
const fieldsEdited = formState.dirtyFields;
useEffect(() => {
if (Object.keys(fieldsEdited).length > 0) {
setIsEdited(true);
} else {
setIsEdited(false);
}
}, [fieldsEdited]);