Form.List的使用,设置某个字段的值
1.Form.Item的name
<Form.Itemname={['base_range', 'company_base_range_start']}dependencies={[['base_range', 'company_base_range_end']]}rules={[{ required: true, message: '请输入下限' },{validator: (_, value) =>validateMoneyRule(value,base_range?.company_base_range_end)}]}style={{ display: 'inline-block', width: 'calc(50% - 15px)' }}><InputNumbercontrols={false}placeholder='下限'addonAfter='元'style={{ width: '100%' }}/></Form.Item>
form.item的naem可以为数组或者字符串,当后端接口文档中的字段有相同名字的时候,可以用数组。
dependencies,依赖,一般是校验规则时会用到。
2.设置Form.List的某个字段的值
<Form.List name='account_info' initialValue={[{}, {}, {}, {}]}>{(fields) => (<>{fields.map(({ key, name }, index) => (<div key={key}><Row><Col span={1} /><Col span={5}><Form.Item name={[name, `scene`]} {...noLabelLayout} valuePropName='checked'><Checkboxdisabled={!!subjectScene?.[index]?.scene}onChange={() => {form.setFieldValue(['account_info', index, 'id'], undefined)}}>{sceneList[index]}</Checkbox></Form.Item></Col><Col span={17}><Form.Itemname={[name, 'id']}{...noLabelLayout}rules={[{ required: account_info?.[index]?.scene, message: '请选择账户' }]}><BankAccountSelectplaceholder='请选择'disabled={!!subjectScene?.[index]?.scene || !account_info?.[index]?.scene}subject_id={subjectObject?.key}open_status={1}style={{ width: '100%' }}/></Form.Item></Col></Row></div>))}</>)}</Form.List>
3.一行展示form.item
<Form.Item label='范围' {...shortLayout} className='label__required'><div style={{ display: 'flex', alignItems: 'center' }}><Form.Itemname={['base_range', 'personal_base_range_start']}dependencies={[['base_range', 'personal_base_range_end']]}rules={[{ required: true, message: '请输入下限' },{validator: (_, value) =>validateMoneyRule(value, base_range?.personal_base_range_end)}]}style={{ display: 'inline-block', width: 'calc(50% - 15px)' }}><InputNumbercontrols={false}placeholder='下限'addonAfter='元'style={{ width: '100%' }}/></Form.Item><span style={{ margin: '0 10px 24px' }}>—</span><Form.Itemname={['base_range', 'personal_base_range_end']}rules={[{ required: true, message: '请输入上限' },{validator: (_, value) => validateMoneyRule(value)}]}style={{ display: 'inline-block', width: 'calc(50% - 15px)' }}><InputNumbercontrols={false}placeholder='上限'addonAfter='元'style={{ width: '100%' }}/></Form.Item></div></Form.Item>