React之antd Form回显数据

一、antd4如何回显数据

1. 定义变量

const [form] = Form.useForm()

2. 保存接口数据到form变量中

const requestProfileList = useCallback(async () => {
    try {
      const { result } = await fetchProfileListRequest()
      form.setFieldsValue(result)
    } catch (e) {
      message.error(e)
    }
  }, [])

3. form显示数据

在Form.item中只要把name属性确定好就OK

<Form layout="horizontal" onFinish={handleOnFinish} form={form}>
</Form>

4. 表单提交数据 onFinish

const handleOnFinish = useCallback(
     (value) => {
     //拿到数据
      console.log(value)
    },
    []
  )

二、antd3如何回显数据

1. 引入FormComponentProps

import { FormComponentProps } from 'antd/lib/form';

2. 设置interface

//定义form 数据
export interface FormData {
  name: string;
  account: string;
  number: string;
}
interface ComponentProps extends FormComponentProps {
  onSubmit(value?: FormData): void;
}

3. 设置组件

const FilterForm: FC<ComponentProps> = ({ form, onSubmit }) => {
}

4. 定义getFieldDecorator和setFieldsValue

const { getFieldDecorator, setFieldsValue } = form;

5. 使用getFieldDecorator实现数据双向绑定

 <Form.Item label={'姓名'}>
  {getFieldDecorator('name')(
  <Input
      prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />}
      style={{ width: 145 }}
      placeholder="请输入员工姓名"
    />,
  )}
</Form.Item>

6.设置默认值

 <Form.Item label={'姓名'}>
  {getFieldDecorator('name', {
   initialValue:  '张三',
  })(
  <Input
      prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />}
      style={{ width: 145 }}
      placeholder="请输入员工姓名"
    />,
  )}
</Form.Item>

7. 表单提交onSubmit

  //提交表单
  const handleSubmit: React.FormEventHandler<HTMLFormElement> = (e): void => {
    e.preventDefault();
    form.validateFields((err, values) => {
      if (!err && onSubmit) {
      //通过onSubmit传递给父组件
        onSubmit(values);
      }
    });
  };
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值