父组件调用子组件的方法

1、一般情况下父组件调用子组件的方法可以通过 ref 进行调用 

......

// 可以使用  this.Son.子组件的方法 来进行调用

render() {
    return (
        <div>
            <Son ref ={ (element) => {this.Son = element} }>
        </div>    
    )    
    
......

2、当子组件通过 redux 的 connect 高阶组件包裹时,不能通过以上方式直接读取到子组件,而读到的是包裹后的 Connect 组件

  解决办法如下:

  1)、首先在子组件在使用 connect 时需要填写第四个参数

......

export default connect(mapStateToPorops,mapDispatchToProps,null,{withRef: true})(Son)

......

  2)、在父组件中调用时需要注意,调用 getWrappedInstance 方法后才能获得真正的 Son 组件

......

// 可以使用  this.Son.子组件的方法 来进行调用

render() {
    return (
        <div>
            <Son ref ={ (element) => {this.Son = element.getWrappedInstance()} }>
        </div>    
    )    
    
......

 

posted @ 2019-02-20 18:00  z春眠不觉晓z  阅读(2578)  评论(0编辑  收藏  举报