Call parent component method from a child component in React
In this tutorial, we are going to learn about how to call a parent component method from the child component in React.
Consider, we have two new components Parent, Child and we need to call Parent component method changeName() from the Child component.
Parent Component
import React, { Component } from 'react';
import Child from './Child';
class Parent extends Component {
state = {
name: "Gowtham"
}
changeName = ()=>{ this.setState({ name: "James" }) }
render() {
return (
<div>
<Child name={this.state.name}/> </div>
);
}
}
export default Parent;Child Component
import React from 'react';
function Child(props){
const {name} = props;
return (
<div>
<h1>Hello {name}</h1>
<button>Change Name</button>
</div>
)
}
export default Child;Calling parent component method
To call a parent component method from the child component, we need to pass the changeName() method as a prop to the child component and access it as a props data inside the child component.
import React, { Component } from 'react';
import Child from './Child';
class Parent extends Component {
state = {
name: "Gowtham"
}
changeName = ()=>{
this.setState({
name: "James"
})
}
render() {
return (
<div>
<Child name={this.state.name} changeName={this.changeName}/> </div>
);
}
}
export default Parent;In the above code, we have passed the changeName() method as a prop to the Child component.
Now, inside the Child component we can access the changeName() method from the props object.
import React from 'react';
function Child(props){
const {name,changeName} = props;
return (
<div>
<h1>Hello {name}!</h1>
<button onClick={changeName}>Change Name</button> </div>
)
}
export default Child;If we click on a Change Name button the Parent component method changeName() is invoked and the name is changed from Gowtham to James.


