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

261
Views
Reaccionar: pasar la función a los accesorios React pero dar un error al acceder a él en el componente

Pasé dos accesorios en dos representaciones separadas del mismo componente y pasé un accesorio como una función y otro como una cadena. Sin embargo, al acceder a él en el componente para renderizar, dice: "props.prop1 no es una función"

Este es mi archivo App.js:

 import React from 'react'; import Test from './components/Test'; function App() { return ( <div className="App"> <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <p> Edit <code>src/App.js</code> and save to reload. </p> <Test prop1={() => {return "a"}}/> <Test prop2="b"/> </header> </div> ); } export default App;

Este es mi archivo Test.js:

 import React from "react"; function Test(props) { return ( <> <div className="test"> <div>Test data {props.prop1()} </div> <div>{props.prop2}</div> </div> </> ); } export default Test;
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Ha declarado 2 componentes <Test> en su <App> y no está pasando prop2 en el segundo:

Es posible que desee pasarlos todos al mismo tiempo así:

 import React from 'react'; import Test from './components/test'; function App() { return ( <div className="App"> <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <p> Edit {' '} <code> src / App.js </code> {' '} and save to reload. </p> <Test prop1={() => 'a'} prop2="b" /> </header> </div> ); } export default App;
about 4 years ago · Juan Pablo Isaza Report

0

Está pasando prop1 y prop2 alternativamente. Así que deberías pasar ambos apoyos.

Si desea pasar accesorios alternativos, puede hacerlo. Agregue la función predeterminada (que solo invoca pero no hará nada) si prop1 está ausente como

 prop1 = () => {}

1) Debe usarse cuando desee mostrar el div a pesar del valor prop1

 import React from "react"; function Test({ prop1 = () => {}, prop2 }) { return ( <> <div className="test"> <div>Test data {prop1()} </div> <div>{prop2}</div> </div> </> ); } export default Test;

2) Si desea ocultar el div si prop1 no está presente, puede usar && como

 import React from "react"; function Test(props) { return ( <> <div className="test"> { props.prop1 && <div>Test data {props.prop1()} </div> } { props.prop2 && <div>{props.prop2}</div> } </div> </> ); } export default Test;
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!