javascript - 如何调用子组件的实例方法?

标签 javascript reactjs

将回调函数作为 props 传递给子组件很简单,但反之则不然。

我们如何调用子组件的实例方法?

来自 <Parent />组件,我需要调用 this.bar <Child /> 的实例方法成分。

class Parent extends React.Component {
    render() {
        return (
            <Child />
        )
    }
}

class Child extends React.Component {
    constructor( props ) {
        super( props );
        this.bar = () => console.log('foo');

    }

}

最佳答案

您可以使用 refs 来做到这一点。

class Parent extends React.Component {
  constructor(props) {
    super(props);
    this.childRef = React.createRef();
  }

  componentDidMount() {
    this.childRef.current.bar()
  }

  render() {
    return (
      <Child ref={this.childRef} />
    );
  }
}

class Child extends React.Component {
  constructor( props ) {
    super( props );
    this.bar = () => console.log('foo');
  }

  render() {
    return <p>Child</p>
  }
}

查看 Refs documentation

关于javascript - 如何调用子组件的实例方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56818348/

相关文章:

javascript - 当传递一组轨迹时,Plot.ly 不呈现

javascript - React - 在表格行上触发点击事件

javascript - 在 Angular 2+ 应用程序中从 Twitter 获取用户访问 token

javascript - Netbeans 的 Javascript/Jquery Intellisense 问题

javascript - jQuery 和 CSS 的窗口大小问题

java - 为什么 getEngineByName (“js” ) 返回 null?

unit-testing - Jest 错误: Test suite failed to run,如何解决?

javascript - 在组件已卸载后,如何取消解析 promise 的状态更改?

javascript - 如何在按钮单击时切换下拉菜单并在外部单击时关闭下拉菜单?

javascript - 尝试导入错误: './components' does not contain a default export (imported as 'App' )