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

239
Views
¿Hay alguna manera de llamar a useContext en una devolución de llamada de clic?

Estoy aprendiendo React y tengo un Contexto personalizado accesible con un método de uso:

 // In a Provider file. export const useUsefulObject(): UsefulObject { return useContext(...) }

Quiero usar UsefulObject en una devolución de llamada de clic en otro archivo. Para mayor comodidad, tengo esa devolución de llamada envuelta en un método someLogic .

 const PageComponent: React.FC = () => { return <Button onClick={(e) => someLogic(e)} />; } function someLogic(e: Event) { const usefulObject = useUsefulObject(); usefulObject.foo(e, ...); }

Sin embargo, VS Code advierte que llamar a useUsefulObject en someLogic es una violación de las reglas de los ganchos, ya que se llama fuera de un método de componente.

Puedo pasar el objeto (¡el siguiente código funciona!) pero parece que anula el punto de Contextos para evitar todo el paso. ¿Hay una mejor manera que esta?

 const PageComponent: React.FC = () => { const usefulObject = useUsefulObject(); return <Button onClick={(e) => someLogic(e, usefulObject)} />; } function someLogic(e: Event, usefulObject) { usefulObject.foo(e, ...); }
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Es necesario llamar a los ganchos mientras se procesa el componente, por lo que su última idea es una de las formas posibles de hacerlo. Otra opción es que puede crear un enlace personalizado que acceda al contexto y cree la función someLogic:

 const PageComponent: React.FC = () => { const someLogic = useSomeLogic(); return <Button onClick={(e) => someLogic(e)} /> } function useSomeLogic() { const usefulObject = useUsefulObject(); const someLogic = useCallback((e: Event) => { usefulObject.foo(e, ...); }, [usefulObject]); return someLogic; }
about 4 years ago · Santiago Trujillo 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!