antd pro v4 使用form.setFieldsValue更新数据的时候,form为null,改如何解决?

新手上路,请多包涵
class List extends React.Component {

  // 详情表单实例
  FormRef = React.createRef();
  
  render() {
        <Form {...layout}
          ref={this.FormRef}
          name="form"
          onFinish={this.create}>
          <Form.Item label="名称">
           <Input allowClear maxLength="64" placeholder="Name"/>
          </Form.Item>
        </Form>
  }
} 

代码大概是上面贴出来的那样子
流程是异步调用接口获取返回数据后使用this.FormRef.current.setFieldsValue({})的时候报错
this.FormRef.current为null。

后面发现如果在表单里按钮触发点击事件,则this.FormRef.current不为null。但是如果在表单了添加按钮主动触发就不是我想要的效果了,既然页面已经渲染了,那么为什么this.FormRef会为null呢?

希望好心人帮助我解决?谢谢!

阅读 6.3k
1 个回答

那个用ref的话需要先渲染一次from表单,才可以使用ref来控制数据,所以需要写一个延迟让组件先渲染

setTimeout(() => {
      this.formRef.current.setFieldsValue({
           //       
      });
      }, 100);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题