如何使用redux-form规范化

时间:2017-06-13 11:14:40

标签: javascript localization redux-form

在我们的一种形式中,我们需要在输入字段中显示十进制数字。要求是我们支持十进制数的两种语言环境:12.512,5。 我们需要将值保持为数字,因此我尝试使用normalize方法。



 function normalize(value: string) {
   return +value
     .replace(/^[0]+/, "") // numbers can't start with a zero
     .replace(/[^\d.,]/, "") // decimals allowed digits and . ,
     .replace(/[,]/,"."); // actual numbers are saved with .
}




问题在于它适用于.但不适用于,,因为redux-form不允许显示视图和商店的差异值。

一个选项是将值存储为字符串并使用format方法更改它,但是当我需要将此数据发送到服务器时,我需要它是数字而不是字符串。

是否有更好的解决方案,我们仍然可以将数值保存为数字但支持,.

1 个答案:

答案 0 :(得分:0)

我建议给The Redux Form Value Lifecycle一个好的阅读。

回答你的问题:

  1. 将数据存储为redux商店中的数字
  2. 使用format将redux商店中的数字转换为输入的本地化字符串
  3. 使用parse将用户输入更改为redux商店的数字
  4. 如果您需要对值输入 redux商店
  5. 强制执行某些格式设置或约束,请仅使用normalize

    对于完整的“神奇自动编码体验”,您可以在this example中看到,您需要将该数字作为字符串存储在redux存储中,并在表单提交期间将其解析为数字。