如何将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}时,它将被完全忽略。
思想?
答案 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
/>
使用这两种格式并标准化,您可以将复选框true
和false
映射到您的redux商店中的'1'
和'0'
。