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> ) ......