【问题标题】:Why does my custom TextField reset to its default value when content is deleted?为什么删除内容后我的自定义 TextField 会重置为其默认值?
【发布时间】:2023-01-18 00:08:47
【问题描述】:
我创建了一个使用 MUI TextField、react-number-format NumericFormat 和 react-hook-form useController 的自定义 FormCurrencyField。
它有效:值被正确格式化为货币并且表单模型被正确更新。
我遇到的问题是,如果我删除 TextField 的内容,它会重新设置为默认值。我不知道为什么。
这是问题的演示:https://stackblitz.com/edit/react-odfkwv
【问题讨论】:
标签:
reactjs
material-ui
react-hook-form
react-number-format
【解决方案1】:
您使用defaultValues,这在没有值时显示。而不是像这样使用values:
const {
control,
formState,
formState: { isValidating },
} = useForm({
mode: 'onChange',
values: { price: 1000 },
});
【解决方案2】:
defaultValues 是当字段为空时表单字段应重置的内容。如果您想要在清除或删除内容时字段重置为空字段的行为,请在 useForm 选项中将 defaultValues 替换为 values。