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

How do I use Redux-form to get values from checkboxes?

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

例如,我有这样的输入:

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

当 Redux 表单选择它时,它只给了我一个 true/false,即使我想要值 "Pages missing or out of order"

我可以做这样的事情来到达我需要去的地方,以便在提交表单时,它会提交值“Pages missing or out of order,而不是 true/false?

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

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

想法?

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

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

例如,

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

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