React hook Form知道何时修改值

时间:2020-07-19 13:50:47

标签: reactjs react-hook-form

我们如何知道表单是否被修改为react-hook-form。 任何人都有主意。 我想知道是否更改了任何值并将更新的状态更新为true。

在我将defaultValue提供给useForm({defaultValues:values})之后。 我想通知值何时从defaultValue更新或更改。

2 个答案:

答案 0 :(得分:3)

使用isDirty属性

function YourComponent() {
 const { formState } = useForm();
 const isFormEdited = formState.isDirty;
 ....

这里是docs reference

答案 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]);