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 functiony
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)); }}