我使用 react-number-format
和 react-hook-form
Controller
输入货币。
formState
没有正确更新: isDirty
和 dirtyFields
在编辑屏蔽的数字输入然后删除文本时似乎没有更新。< /p>
我将 defaultValues
设置为 ''
(空字符串)。
如果我输入一个数字,我可以看到 isDirty
为真。但是,如果我删除输入,并且值为 ''
(空字符串),我仍然看到 isDirty
为 true - 但该值与 defaultValue 完全相同。
答案 0 :(得分:1)
问题在于文件 masked-hook-form-inputs.js
中的第 54 行:
onChange(values.floatValue);
floatValue
的值可以是 undefined
,这导致了问题。
解决方案
将第 54 行更改为 onChange(isNaN(values.floatValue) ? '' : values.floatValue);
请注意,最好使用 ''
(空字符串)而不是 null
。