如何以反应最终形式解析未触及的字段

时间:2020-03-12 15:29:06

标签: reactjs react-final-form

我有一个反应最终形式的输入。如果未填写,则需要将其表单值设置为零。我无法将初始值传递给它,就好像用户没有填写它一样,输入本身应该保持为空。

在react-final-form文档中,有一个Edit wispy-frog-fks4j函数。但是,只有在触摸了该字段(用户填写并清除)后,该控件才起作用。有什么方法可以解析未触及的字段并将其表单值设置为零,而无需更新输入?

这是我的代码:

<Field
  name="amount"
  component={CurrencyInput}
  parse={value => (value ? value : 0)}
/> 

这是指向我的parse的链接。

1 个答案:

答案 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

希望这可以解决问题