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

355
Vistas
La variable de función React onClick no está definida, pero debería funcionar durante el tiempo de ejecución, ¿cómo debo solucionar esto?

Tengo una función onclick llamada Selección y la llamo en el componente funcional.

Tengo varios botones, pero solo quiero que se seleccione uno de ellos al mismo tiempo, por lo tanto, se escribe una función de este tipo y todos los botones comparten la misma función de clic Selection() .

Sin embargo, el error indefinido de la variable de retorno se debe al acceso de boardSetHooks a la variable last_select. Si entiendo mi código correctamente, cuando se ejecuta esa declaración else, no habrá tal caso de que last_selected[0] no esté definido, ya que será capturado por la primera declaración if.

¿Cómo debo resolver esto? Estoy investigando un poco y no estoy seguro de qué solución o dirección debo buscar: ¿usar useEffect() o usar bind?

 var last_select = [] export default function Grid() { function Selection(x, y){ if (last_select === []) { if (board[x][y][0] !== "" && board[x][y][0][0] === 'W'){ boardSetHooks[x][y]([board[x][y][0], true]) last_select = [x, y] return } } else { if (last_select === [x, y]) { boardSetHooks[x][y]([board[x][y][0], false]) last_select = [] return } else { boardSetHooks[last_select[0]][last_select[1]]([board[last_select[0]][last_select[1]][0], false]) boardSetHooks[x][y]([board[x][y][0], true]) last_select = [x, y] return } } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

  1. Cada una de las declaraciones de "retorno" en realidad no devuelve nada. ¿Qué deberían devolver? Si desea devolver SIEMPRE last_select , entonces:
    1. Elimina todas tus devoluciones
    2. Al FINAL de Selection , return last_select;
  2. Después de formatear un poco su código, puede ver que puede haber una situación en la que su declaración if-else no cubra todas las posibilidades.
 function Selection(x, y) { if (last_select === []) { if (board[x][y][0] !== "" && board[x][y][0][0] === 'W'){ boardSetHooks[x][y]([board[x][y][0], true]) last_select = [x, y] return // This returns undefined. What should it return? } // <----- What happens when the above if-condition is false? } else if (last_select === [x, y]) { boardSetHooks[x][y]([board[x][y][0], false]) last_select = [] return // This returns undefined. What should it return? } else { boardSetHooks[last_select[0]][last_select[1]]([board[last_select[0]][last_select[1]][0], false]) boardSetHooks[x][y]([board[x][y][0], true]) last_select = [x, y] return // This returns undefined. What should it return? } return last_select // <--- All of your if-statements assign last_select, so return it here. }
about 4 years ago · Juan Pablo Isaza Denunciar
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