antd react form.list动态增减表单项Switch受控

avatar
作者
猴君
阅读量:0
import React, { useState } from 'react'; import { Form, Input, Switch, Button } from 'antd';   const Demo = () => {   const [switches, setSwitches] = useState({});     const onFinish = (values) => {     console.log('Received values of form: ', values);   };     return (     <Form       name="dynamic_form_item"       onFinish={onFinish}       autoComplete="off"     >       <Form.List name="list">         {(fields, { add, remove }) => (           <>             {fields.map((field, index) => (               <Form.Item                 {...field}                 name={[field.name]}                 key={field.key}                 fieldKey={field.fieldKey}               >                 <Input placeholder="Input number" />                 <Switch                   checked={switches[field.name]}                   onChange={(checked) => {                     setSwitches({ ...switches, [field.name]: checked });                   }}                 />                 {fields.length > 1 ? (                   <Button                     onClick={() => {                       remove(field.name);                       setSwitches({ ...switches, [field.name]: undefined });                     }}                   >                     Delete                   </Button>                 ) : null}               </Form.Item>             ))}             <Form.Item>               <Button type="dashed" onClick={() => add()}>                 <PlusOutlined /> Add field               </Button>             </Form.Item>           </>         )}       </Form.List>       <Form.Item>         <Button type="primary" htmlType="submit">           Submit         </Button>       </Form.Item>     </Form>   ); };   export default Demo;

        这个代码示例展示了如何使用Ant Design的Form和Form.List组件来创建一个可动态增减表单项的表单,并且每个表单项旁边都有一个Switch组件,这些Switch组件是受控的,即它们的状态会被保存在组件的状态中。当用户提交表单时,表单的数据以及Switch的状态都会被打印出来。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!