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

158
Views
en una aplicación nextjs, ¿cómo activo una función en un componente desde otro?

Tal como dice el título, tengo 2 componentes personalizados en una página en una aplicación NextJS simple:

 <section> <CompA></CompA> <CompB></CompB> </section>

¿Cómo puedo hacer que un botón en CompB active una función contenida en CompA?

Supongo que debería usar el estado de alguna manera, pero estoy un poco perdido sobre cómo hacerlo en NextJS. Ejemplo de código simple aquí: https://github.com/Chenzo/nextjs-comp-to-comp

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Técnicamente, puedes hacer esto con el gancho useImperativeHandle , pero esta no es exactamente la "manera de reaccionar":

 const CompA = forwardRef(({ children }, ref) => { useImperativeHandle(ref, () => ({ doSmth: () => { console.log('CompA - function'); }, })); return ( <div> <h2>Component A</h2> </div> ); }); const CompB = ({ onClick }) => { return ( <div> <h2>Component B</h2> <button onClick={onClick}>Trigger CompA function</button> </div> ); }; export default function Home() { const compARef = useRef(); const handleCompBClick = useCallback(() => compARef.current?.doSmth(), []); return ( <section> <CompA ref={compARef}></CompA> <CompB onClick={handleCompBClick}></CompB> </section> ); }

Como escribí anteriormente, lo más probable es que haya una forma más correcta de resolver su problema, evitando el enfoque imperativo. La decisión dependerá de qué harán exactamente los componentes A y B en una aplicación real.

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!