Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

188
Visualizações
Passing a function to Child Component through a Prop using ReactJS

I have a class that contains the class Component.

When I provide an onClick prop for the to use and try to pass a function, I get the following error:

AddForm.js:74 Uncaught TypeError: _this3.props.onClick is not a function

Code:

export default class Company extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
		AddOrView: <AddForm header="Add User" formFields={this.fields} />,
		users: this.props.initialUsers
	}
  }
  handleAdd() {
    console.log('Hello World');
  }
  
  render() {
    return (
       <AddWithTitle onClick={e => this.setState({ 
	        AddOrView: <AddForm header="Add User" 
                                    formFields={this.fields} 
				    formResponses="" 
				    onClick={this.handleAdd} /> 
					        })
			     } src="blah.png">
	    Add User</AddWithTitle>
    );
  }
}

export default class AddForm extends React.Component {
   
  render() {
      return(
          <button className="btn btn-primary" 
				formResponses={this.state.fieldValues} 
				onClick={() => this.props.onClick()} >
				Save
		  </button>
      );
   }
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

Thank you for your help :)

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

You have to bind the function to your top level component for it to fire whatever you want it to fire in the onClick method.

   <AddWithTitle onClick={e => this.setState({ 
        AddOrView: <AddForm header="Add User" 
                                formFields={this.fields} 
                formResponses="" 
                onClick={this.handleAdd.bind(this)} /> 
                        })
             } src="blah.png">
    Add User</AddWithTitle>
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda