React之antd Form回显数据

转自:https://blog.csdn.net/welkin_qing/article/details/110004969

文章目录

 

一、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);
      }
    });
  };
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值