反应钩子形式和反应数字格式的 isDirty 问题

时间:2021-06-08 15:13:21

标签: reactjs react-hook-form react-number-format

我使用 react-number-formatreact-hook-form Controller 输入货币。

formState 没有正确更新: isDirtydirtyFields 在编辑屏蔽的数字输入然后删除文本时似乎没有更新。< /p>

我将 defaultValues 设置为 ''(空字符串)。

如果我输入一个数字,我可以看到 isDirty 为真。但是,如果我删除输入,并且值为 ''(空字符串),我仍然看到 isDirty 为 true - 但该值与 defaultValue 完全相同。

Edit react hook form with react number format isDirty issue

1 个答案:

答案 0 :(得分:1)

问题在于文件 masked-hook-form-inputs.js 中的第 54 行:

onChange(values.floatValue); floatValue 的值可以是 undefined,这导致了问题。

解决方案 将第 54 行更改为 onChange(isNaN(values.floatValue) ? '' : values.floatValue);

请注意,最好使用 ''(空字符串)而不是 null