如何使用Redux-form从复选框中获取值?

时间:2016-06-21 21:26:26

标签: reactjs redux redux-form

如何将redux格式的复选框的默认布尔值更改为您在输入本身上指定的值?

例如,我有这样的输入:

<input type="checkbox" value="Pages missing or out of order" {...issue1} />

当Redux表单选择它时,它只是给我一个真/假,即使我想要值“页面缺失或乱序”

我可以做这样的事情来获取我需要去的地方,这样当表单提交时,它会提交值“页面缺失或乱序,而不是真/假?”

<input type="checkbox" onChange={value => console.log(value.target.value)} value="Pages missing or out of order" />

当我删除{... issue1}时,我的自定义onChange事件处理程序将被调用,但是当我保留{... issue1}时,它将被完全忽略。

思想?

2 个答案:

答案 0 :(得分:4)

不,redux-form将复选框视为布尔值。您必须将布尔值映射到其他地方的字符串。

答案 1 :(得分:1)

您需要使用两者 格式属性从字符串映射到布尔值,并使用 normalize 属性从布尔值映射到字符串。< / p>

例如,

如果您在redux状态下保存的数据必须是字符串'1''0',则需要使用下面的<Field />映射到true以及 redux-form 复选框的false默认值

<Field
  name='myCheckbox'
  type='checkbox
  format={v => v === '1'} // converts redux state string to boolean
  normalize={v => v ? '1' : '0'} // converts checkbox boolean to string
/>

使用这两种格式并标准化,您可以将复选框truefalse映射到您的redux商店中的'1''0'