Maj*_*awi 2 reactjs react-native react-hook-form
我有一个预先填写的表格,由以下控制react-hook-form:
const {control, handleSubmit, formState, setValue, reset} = useForm<UserDetailsForm>({
mode: 'onChange',
defaultValues,
});
const {errors, isDirty, isValid} = formState;
...
Run Code Online (Sandbox Code Playgroud)
提交按钮:
<Button
variant="link"
title="Save Changes"
onPress={handleSubmit(handleProceed)}
disabled={!isDirty || !isValid}
/>
Run Code Online (Sandbox Code Playgroud)
返回时,我需要检查表单是否有未保存的更改,如果有则显示警报。
我该如何检查?我尝试检查formState变量,但它似乎不包含类似的内容。
您可以使用isDirtyflag 来查看用户是否修改了任何表单字段:
const { ..., formState } = useForm(...);
const { isDirty } = formState;
Run Code Online (Sandbox Code Playgroud)
isDirtyfalse提交后未设置,因此如果您想清除它,您需要调用reset:
const onSubmit = (data) => {
// ...
// set isDirty to false unless you set keepDirty: true in the option argument
reset({}, { keepValues: true, keepIsValid: true });
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3620 次 |
| 最近记录: |