解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

       最近在整理react项目的基建代码,抽取高阶组件,使用@注解之后发现子组件没法获取ref实例。

参见下面的代码

解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

父组件的代码

在函数内获取实例

解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

获取实例的函数

遵循面向百度编程的原则,百度了一大波:

 

解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

尝试了百度的方法

控制台的打印情况:

解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

打印的结果

对象为空,百思不得其解的情况,做了如下的改进:

解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

父组件上自定义属性

子组件做如下处理:

解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

将子组件的实例传回父组件

在控制台的打印父组件:

解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

父组件的打印

解决React 子组件使用高阶函数注解后,父组件中会出现无法获取其ref实例情况

控制台获取到的实例

思路:子组件与父组件的props 数据流向特性,受控组件与非受控组件的。开始上手react之前,熟读一遍react官方文档。熟练使用了react上手项目之后,还是要再回归一遍文档,读起来是会有不同的体悟的。