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