by Sai gowtham

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

Parent.js
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

Child.js
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.

Parent.js
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.

Child.js
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.

Css Tutorials & Demos

How rotate an image continuously in CSS

In this demo, we are going to learn about how to rotate an image continuously using the css animations.

How to create a Instagram login Page

In this demo, i will show you how to create a instagram login page using html and css.

How to create a pulse animation in CSS

In this demo, i will show you how to create a pulse animation using css.

Creating a snowfall animation using css and JavaScript

In this demo, i will show you how to create a snow fall animation using css and JavaScript.

Top Udemy Courses

JavaScript - The Complete Guide 2022 (Beginner + Advanced)
JavaScript - The Complete Guide 2022 (Beginner + Advanced)
116,648 students enrolled
52 hours of video content
$14.99 FROM UDEMY
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
631,582 students enrolled
49 hours of video content
$24.99 FROM UDEMY
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
203,937 students enrolled
31.5 hours of video content
$14.99 FROM UDEMY