2016-06-21 47 views
2

如何將redx格式的複選框的默認布爾值更改爲您在輸入本身上指定的值?如何使用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}時,它將被完全忽略。

想法?

回答

3

不,redux-form將複選框視爲布爾值。您必須將布爾值映射到其他地方的字符串。

+0

是的,我最終不得不爲了獲取複選框來做我想做的事情,包括編寫自定義驗證等。 –

0

您需要使用格式屬性從字符串映射到布爾和正常化屬性映射從布爾值的字符串。

例如,

如果您有保存在一個需要字符串'1''0' Redux的狀態數據,您需要使用<Field />像下面映射到的的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 
/> 

同時使用的格式和規範你保持你的複選框truefalse映射到'1''0'在您的redux商店。