const {
control,
reset,
formState: { isDirty },
handleSubmit,
} = useForm({
defaultValues: DEFAULT_DATA,
})
isDirty 在更新表單後會保持 true
的狀態,如果要讓 isDirty 變回 false 狀態需要手動 reset
reset({})
reset 的第二個參數可以設置是否要保留錯誤、目前的值、更新的欄位值…等,更多的可以看 reset
reset({}, { keepValues: true })
但要注意的是,如果是通過 useForm()
獲取的 formState.isDirty
,某些時候會在 reset 後從 false 又變回 true,所以建議使用 useFormState
這個 hook 來獲取 isDirty
const { isDirty } = useFormState({ control })