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

isDirty issue with react hook form and react number format

我正在使用 react-number-formatreact-hook-form Controller 作为货币输入。

formState没有正确更新:isDirtydirtyFields似乎在编辑屏蔽号码输入时没有更新然后删除文本。

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

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

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

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

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

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