en-US
DForm.Item supports dLabelExtra to configure extra information, DForm supports dRequiredType to set required styles globally.
zh-CN
DForm.Item 支持 dLabelExtra 配置额外信息,DForm 支持 dRequiredType 全局设置必填样式。
import { useState } from 'react';
import { SearchOutlined } from '@react-devui/icons';
import { DForm, FormControl, FormGroup, Validators, useForm, DInput, DRadio } from '@react-devui/ui';
export default function Demo() {
const [label, setLabel] = useState('required');
const [form1, updateForm1] = useForm(
() =>
new FormGroup({
username1: new FormControl(''),
username2: new FormControl('', Validators.required),
})
);
const [form2, updateForm2] = useForm(
() =>
new FormGroup({
username1: new FormControl(''),
username2: new FormControl(''),
})
);
return (
<>
<DRadio.Group
dList={['required', 'optional', 'hidden'].map((label) => ({
label: label,
value: label,
}))}
dModel={label}
dType="outline"
onModelChange={setLabel}
/>
<br />
<DForm dUpdate={updateForm1} dLayout="vertical" dRequiredType={label}>
<DForm.Group dFormGroup={form1}>
<DForm.Item dFormControls={{ username1: 'Please input your username!' }} dLabel="Username">
{({ username1 }) => <DInput dFormControl={username1} dPlaceholder="Username" />}
</DForm.Item>
<DForm.Item dFormControls={{ username2: 'Please input your username!' }} dLabel="Username">
{({ username2 }) => <DInput dFormControl={username2} dPlaceholder="Username" />}
</DForm.Item>
</DForm.Group>
</DForm>
<br />
<DForm dUpdate={updateForm2} dLayout="vertical" dRequiredType={label}>
<DForm.Group dFormGroup={form2}>
<DForm.Item
dFormControls={{ username1: 'Please input your username!' }}
dLabel="Username"
dLabelExtra={[{ title: 'Some info!' }]}
>
{({ username1 }) => <DInput dFormControl={username1} dPlaceholder="Username" />}
</DForm.Item>
<DForm.Item
dFormControls={{ username2: 'Please input your username!' }}
dLabel="Username"
dLabelExtra={['Info', { title: 'Some info!', icon: <SearchOutlined /> }]}
>
{({ username2 }) => <DInput dFormControl={username2} dPlaceholder="Username" />}
</DForm.Item>
</DForm.Group>
</DForm>
</>
);
}