2016-09-21 3 views
0

から確認フィールドやチェックボックス反応し、ツールボックスの値をReduxの-形成:私はこのデータを持っているオブジェクト

... 
initialValues: { 
    alarm: 'normal', 
    days: { mon: true, tue: true, wed: true, thu: false, friday: true } 
} 
... 

レンダリングするために、私は次の操作を行います。

<Field name="days" component={({ input }) => { 
    return (
    <div className='days-container'> 
     <Checkbox label='Monday' checked={input.value.mon} onChange={input.onChange} /> 
     <Checkbox label='Tuesday' checked={input.value.tue} onChange={input.onChange} /> 
     ... 
    </div> 
) 
}}/> 

が、日の値がブール次のようになります。あなたが最初の構造を維持するために同じよう

days: true 

+0

あなたが知っている投稿を編集できますか? – martriay

+0

変更されました。編集するオプションが表示されませんでした – qhapaq

答えて

1

私はそれがこのよう

<Field name="days" label='Days' component={({ input, label }) => { 
    return (
    <div className='days-container'> 
     <span className='label'>{label}</span> 
     {[ 'mon', 'tue', 'wed', 'thu', 'friday'].map((name, index) => 
      <Checkbox label={name} checked={input.value[name]} key={index} onChange={checked => { 
      const setter = {}; 
      setter[name]=checked; 
      input.onChange({...input.value, ...setter})}} /> 
    )} 
    </div> 
) 
}}/> 

がより良い方法でしたか?

+0

これは本当に良いです。私の場合、私はredux形式のカスタムレデューサープラグインを作成し、それをonclickイベントでリッスンすることによって個別にティックボックスを処理することになりました...これはずっと簡単です。 – Adam

関連する問題