Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

127
Views
What causes the failure to pass props from parent to child in this React application?

I am working on a small React app. It has a list of buttons in a Buttons.js component.

Following this guide, I am trying to pass the value of the label attribute into the single button template like this:

In Buttons.js:

import './Buttons.css';
import Button from './Button';

const Buttons = (props) => {
 return (
  <ol class="buttons-container">
   <Button label="Clik 1" />
   <Button label="Clik 2" />
   <Button label="Clik 3" />
  </ol>
 );
};

export default Buttons;

In Button.js:

import './Button.css';

const Button = () => {
  return ( <li>{ this.props.label }</li> );
}

export default Button;

The problem

The code above shows no error in the console, but it does throw this in the browser's console:

Cannot read properties of undefined (reading 'props')
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

The correct code is

import './Button.css';

const Button = (props) => {
  return ( <li>{ props.label }</li> );
}

export default Button;

You forgot to pass props and you were using this.props.label.

about 4 years ago · Juan Pablo Isaza Report

0

You're confusing Class Components and Function Components.

In a Function Component, like the one you, have props are passed as the first argument to the function.

const Button = (props) => {
    return ( <li>{props.label}</li> );
}

And commonly destructured:

const Button = ({label}) => {
    return ( <li>{label}</li> );
}

You would access props via this if you were writing a Class Component:

class Button extends React.Component {
    render() {
        return ( <li>{this.props.label}</li> );
    }
}
about 4 years ago · Juan Pablo Isaza Report

0

First, your Button component is a functional component, so no need for this. Second, you need to define props in your button component;

const Button = (props) => {
  return ( <li>{ props.label }</li> );
}

export default Button;
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!