父组件通过函数创建 ref,然后获取子组件方法失败



  • 父组件引用

    refTab = node => {
        this.tab = node;
      };
    
      test() {
         console.log(this.tab)  //  此处会输出 {current: null} ,并不会向官网示例一样
      }
    
    render() {
     return (
         <View className="index">
             <Text onClick={this.test.bind(this)}>test</Text>
             <Tab ref={this.refTab} ></Tab>
         </View>
      );
    }
    
    

    子组件

    switchTab(index, e) {
        console.log(e, "----eee");
    }
    
    
    render() {
      return(
       <View />
      )
    }
    

    麻烦碰到过的大佬 帮忙给一点解答哇 😓



  • 解决了吗,同样遇到了问题



  • 不知道能不能解决,试试这两种方法
    1: 子组件为Children,在子组件创建时

    componentDidMount() {
      this.props.onRef(this);
    }
    

    然后父组件中

    <Children 
      onRef={node => this.Children = node}
    />
    

    然后可以打印this.Children看一下

    2:

    <Children ref={this.Children}/>
    

    然后在

    constructor(props) {
        super(props);
        this.Children = React.createRef();
      }
    

    然后可以打印this.Children看一下


登录后回复