我有一个反应最终形式的输入。如果未填写,则需要将其表单值设置为零。我无法将初始值传递给它,就好像用户没有填写它一样,输入本身应该保持为空。
在react-final-form文档中,有一个函数。但是,只有在触摸了该字段(用户填写并清除)后,该控件才起作用。有什么方法可以解析未触及的字段并将其表单值设置为零,而无需更新输入?
这是我的代码:
<Field
name="amount"
component={CurrencyInput}
parse={value => (value ? value : 0)}
/>
这是指向我的parse的链接。
答案 0 :(得分:1)
如果这样做是要使<pre>
中显示的对象在输入为空时的默认值为零,则可以使用状态变量,并在parse
内使用不断更新其值
const [amount, setAmount] = useState(0);
const onInputChange = e => {
e === "" || e === undefined ? setAmount(0) : setAmount(e);
};
并在Field
标签中
<Field
name="amount"
component={CurrencyInput}
parse={value => onInputChange(value)}
defaultValue={amount}
/>
在此处检查代码和框:
https://codesandbox.io/s/react-final-form-wreact-number-format-and-parse-22q3n
希望这可以解决问题