2017-12-22 9 views
3

するように私は、レンダリングのチェックボックスの配列を有する:これは私の配列として値与えるReduxの形7力配列オブジェクトを返す代わりに配列

<form> 
    {items.map(item => { 
    <Field component="input" 
      type="checkbox" 
      name=`items.{item.id}` 
    })} 
</form> 

{ 
      //index: 0, 1,  ,…, 120, 121, … ,231, …      
    item: [undefinded,undefined,…,true,undefined,…,true,undefined,…] 
} 

代わりI (主に大きな配列が作成されるのを避けるために)オブジェクトを好むでしょう:

{ 
    120: true, 
    131: true, 
    165: false 
} 

redux-forを強制する方法はありますかitemIdが整数の場合、m個の出力オブジェクト。

注:itemIdがstringとして渡された場合、redux-formは配列を返します。 Reduxのフォームでは動作しません

同様のポストが、溶液7

答えて

0

あなたは状態からフォームフィールドをマッピングしているとき、あなただけのフィルタ機能を使用できます。

checkboxArray.filter(checkbox =>{ 
    return checkbox; // if its undefined, it'll get dropped from the array 
}); 

連想配列をし、オブジェクトはJavascriptでは実際には同じなので、それ以上の作業は必要ありません。そのため、配列内の未定義の項目をすべて除外すると、探しているオブジェクトが得られます。

関連する問題