Создание форм с помощью Ant Design — это простой процесс, если вы усвоите основы. Ключ к пониманию структуры вашей формы лежит в параметре name
, который определяет, как будут организованы ваши данные. В этом блоге мы рассмотрим различные сценарии, которые помогут вам легко перемещаться по вложенным формам.
Базовая структура формы
Начнем с базовой структуры формы. Если вам нужен такой формат:
{ username: "lin gash", password: "123456", }
Ваш код будет выглядеть так:
<Form.Item label="Username" name="username"> <Input /> </Form.Item> <Form.Item label="Password" name="password"> <Input /> </Form.Item>
Формат вложенного объекта
Рассмотрим более сложный формат, например:
{ userInfo: { username: "lin gash" phoneNum: "0972842838" }, }
Для этой структуры атрибут name
адаптируется следующим образом:
<Form.Item label="Username" name={['userInfo', 'username']}> <Input /> </Form.Item> <Form.Item label="Phone Number" name={['userInfo', 'phoneNum']}> <Input /> </Form.Item>
Здесь вы используете последовательность [‘key’, ‘property’] для атрибута name
.
Формат массива объектов
При работе с массивом таких объектов, как:
{ userFriends: [ { username: "lin gash" phoneNum: "0972842838" }, { username: "hein min htet" phoneNum: "0998247237" }, ], }
Шаблон кода немного меняется:
<Form.Item label="Username" name={['userFriends', 0, 'username']}> <Input /> </Form.Item> <Form.Item label="Phone Number" name={['userFriends', 0, 'phoneNum']}> <Input /> </Form.Item> <Form.Item label="Username" name={['userFriends', 1, 'username']}> <Input /> </Form.Item> <Form.Item label="Phone Number" name={['userFriends', 1, 'phoneNum']}> <Input /> </Form.Item>
Здесь атрибут name
соответствует шаблону ['arrayName', index, 'property']
.
Элементы динамического массива
Для динамического управления элементами массива вы можете использовать Form.List
. Вот как вы можете его использовать:
<Form.List name="userFriends"> {(fields,{ add , remove }) => ( <div> {fields.map((field) => ( <div key={field.name}> <Form.Item name={[field.name,"username"]}> <Input /> </Form.Item> <Form.Item name={[field.name,"password"]}> <Input /> </Form.Item> </div> ))} <Button onClick={()=> add()}>Add</Button> </div> )} </Form.List>
Используя Form.List
, вы можете динамически добавлять и удалять элементы массива, сохраняя при этом непротиворечивую структуру.
И это завершает наше исследование вложенных форм Ant Design! С этим пониманием вы сможете с легкостью создавать формы различной сложности.