2

如何将 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} 时,它会被完全忽略。

想法?

4

2 回答 2

5

您需要使用format属性从字符串映射到布尔值,以及使用normalize属性从布尔值映射到字符串。

例如,

如果你有保存在 redux 状态的数据需要是字符串'1''0',你需要使用<Field />下面的类似来映射到redux-form复选框的truefalse默认值

<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
/>

同时使用 format 和 normalize,您可以保留您的复选框truefalse映射到'1''0'的 redux 存储。

于 2018-03-09T22:25:51.763 回答
5

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

于 2016-06-22T20:45:05.390 回答