为了账号安全,请及时绑定邮箱和手机立即绑定

antD4表单重新封装后无法使用setFieldsValue方法

antD4表单重新封装后无法使用setFieldsValue方法

凤凰求蛊 2022-12-22 08:56:12
antD4 表单重新封装时不能使用 setFieldsValue 方法。错误:this.formRef.current.setFieldsValue is not a function通过 codesandbox 演示
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

antD4 表单重新封装时不能使用 setFieldsValue 方法。


当您创建一个 Component 并将 anant Form放入其中时,您不应该期望它的行为就像 an Ant Form(因为您扩展了 a React Component,而不是 an Ant Form)。你需要setFieldsValue,所以你可以像这样实现它:


import React, { PureComponent } from "react";

import { Form as Component } from "antd";


class Form extends PureComponent {

  formRef = React.createRef();


  render() {

    return <Component {...this.props} ref={this.formRef} />;

  }

  setFieldsValue(v) {

    this.formRef.current.setFieldsValue(v);

  }

  getForm() {

    return this.formRef.current;

  }

}


Form.Item = Component.Item;

export default Form;


所以你可以使用它:


    this.formRef.current.setFieldsValue({

      mobile: "110"

    });

要么:


    this.formRef.current.getForm().setFieldsValue({

      mobile: "110"

    });

codesandbox 上的演示


查看完整回答
反对 回复 2022-12-22
  • 1 回答
  • 0 关注
  • 499 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信