关于调用React子组件中方法的问题

  1. 首先通过this.refs.ref.someFuntion()的这种我是知道的。
  2. 我是有一个outer组件包含了许多inner组件,比如:
//当前页面outer组件包含了许多inner组件
<Outer>
    <Inner ref='inner'></Inner>
</Outer>

Outer组件内部通过{this.props.children}渲染了Inner子组件

//通过{this.props.children}渲染了Inner子组件
render(){
    return <div>
        {this.props.children}
    </div>
}

在当前页面可以通过 this.refs.inner.someFuntion()来调用子组件的someFuntion()这是没问题的。
但是我想在Outer中调用Inner子组件的someFunction怎么办?

我有在Outer中通过this.refs来获取子组件,但拿不到

阅读 3.5k
1 个回答
render(){
    const refArr = ['a','b','c']; 
    return <div>
             {
               React.Children.map(this.props.children, 
                 (thisArg, index) => 
                   React.cloneElement(thisArg, {ref: this.refArr[index]}))
             }
    </div>
}

然后在Outer中可以通过this.refs.a.someFunction调用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题