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

222
Views
La función de controlador de clave global de React funciona pero da un error cuando se pasa una función con accesorios

Tengo una función que se exporta desde una carpeta utils. La función se utiliza para gestionar la navegación con el teclado:

 export function handleKeyPress(e, callback) { if (e.key === "Enter") { console.log("test", callback); callback(); } }

Es bastante simple, puede llamar a esta función en una acción onKeyPress y si la tecla que se presionó es la tecla Intro, se ejecutará cualquier función de devolución de llamada que proporcione. Esto funciona correctamente en todos los casos, sin embargo, si la función de devolución de llamada que paso usa parámetros, obtengo el siguiente error de consola (a pesar de que la función sigue funcionando bien):

 Uncaught TypeError: callback is not a function

y

 Uncaught ReferenceError: process is not defined

Para fines de prueba, agregué console.log("test", callback) y, para mi sorpresa, el registro de la consola muestra test undefined . Nuevamente, la función se está ejecutando como se esperaba.

¿Alguna idea de lo que está pasando? ¿Por qué la devolución de llamada se muestra como indefinida a pesar de que se ejecuta correctamente?

Además, cuando ejecuto una función que no toma ningún parámetro, no obtengo un error de consola y el registro de la consola sale como se esperaba.

No puedo estar seguro de que los parámetros sean el problema porque esta función no se llama en tantos lugares, pero aquí hay un ejemplo de una llamada que causa el error:

 const [selectedBundle, setSelectedBundle] = useState( purchase?.bundle || null ); onKeyPress={(e) => { handleKeyPress(e, setSelectedBundle(bundle)); }}
about 4 years ago · Juan Pablo Isaza
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!