我有这些数据:
...
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 :(得分: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>
)
}}/>
有更好的方法吗?