/* Child.js */ import React from 'react' class Child extends React.Component { componentDidMount() { this.props.onRef(this) } componentWillUnmount() { this.props.onRef(undefined) } method() { window.alert('do stuff') } render() { return <h1>Hello World!</h1> } } export default Child; /* Parent.js */ import React from 'react' import Child from './Child' class Parent extends React.Component { onClick = () => { this.child.method() // do stuff } render() { return ( <div> <Child onRef={ref => (this.child = ref)} /> <button onClick={this.onClick}>Child.method()</button> </div> ); } }