Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
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
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda