Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从对象中选中的redux表单字段和复选框react工具箱值_Javascript_Reactjs_Redux Form - Fatal编程技术网

Javascript 从对象中选中的redux表单字段和复选框react工具箱值

Javascript 从对象中选中的redux表单字段和复选框react工具箱值,javascript,reactjs,redux-form,Javascript,Reactjs,Redux Form,我有以下数据: ... initialValues: { alarm: 'normal', days: { mon: true, tue: true, wed: true, thu: false, friday: true } } ... 为了渲染,我执行以下操作 <Field name="days" component={({ input }) => { return ( <div className='days-container'>

我有以下数据:

...
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>
  )
}}/>
正如您希望保持初始结构一样?

我是这样做的

<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>
  )
}}/>
{
返回(
{label}
{['mon'、'tue'、'wed'、'thu'、'friday'].map((名称、索引)=>
{
常量setter={};
setter[名称]=已选中;
input.onChange({…input.value,…setter}}}/>
)}
)
}}/>

有更好的方法吗?

你可以编辑你知道的帖子吗?修改后,我没有看到编辑的选项。这真的很好。在我的例子中,我最终为redux表单创建了一个定制的reducer插件,并通过监听它的onclick事件来分别处理每个tickbox。。。这要容易得多。
<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>
  )
}}/>