• 3
  • 新人请关照

使用typescript的react项目中,如何声明antd的formRef的类型?

代码如下:

class App extends Component<Tprops, Tstate>{

   formRef: React.RefObject<unknown> 
   
   ......
   this.formRef = React.createRef();
   
   dosth = () => {
     // 报错 类型“RefObject<unknown>”上不存在属性“validateFields”。
     this.formRef.validateFields(...);
   }
   
   render(){
     return <Form ref={formRef}>
      ...
     </Form>
   }
}

我应该如何声明formRef这个属性的类型呢?

阅读 186
评论
    1 个回答

    参考 antd 中关于 form 部分的源代码

    const Form = React.forwardRef<FormInstance, FormProps>(InternalForm) as <Values = any>(
      props: React.PropsWithChildren<FormProps<Values>> & { ref?: React.Ref<FormInstance<Values>> },
    ) => React.ReactElement;
    

    这么写就ok了

    const ref = React.createRef<FormInstance>();
    
      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      推荐文章