Creo que hay un error de concepto. No está mal utilizar el logical and. La documentación de React (siempre lean la documentación) indica que el render condicional puede hacerse con ternarias o con &&. También explica que hay un posible escollo y nos lo encontramos cuando ponemos números a la izquierda del &&. Para comprobar la condición JavaScript convierte automáticamente el lado izquierdo de && en un booleano. Sin embargo, si el lado izquierdo es 0, entonces toda la expresión obtiene ese valor y React renderizará el cero. En síntesis, no está mal usarlo, pero hay que conocer el pitfall que comentan los devs de React. Este comentario no es para criticar sino para sumar un aporte, felicito a todas las personas que tienen afán docente.
El ejemplo es un poco burdo, para hacerlo fallar tuviste que modificar la lógica inicial. Entonces el problema deja de ser responsabilidad del operador && para ser problema de como comparas True o False contra un contador.
pasa que && compara como booleanos, es decir que los transforma a booleanos para la comparación, pero cuando retorna el elemento lo retorna tal cual es. En la docu de mdn está muy claro. ejemplo en vanilla: let count = 0 let shorcut = count && "hammer" console.log(shorcut) // retorna 0 console.log(typeof(shorcut)) // number
Creo que hay un error de concepto. No está mal utilizar el logical and. La documentación de React (siempre lean la documentación) indica que el render condicional puede hacerse con ternarias o con &&. También explica que hay un posible escollo y nos lo encontramos cuando ponemos números a la izquierda del &&. Para comprobar la condición JavaScript convierte automáticamente el lado izquierdo de && en un booleano. Sin embargo, si el lado izquierdo es 0, entonces toda la expresión obtiene ese valor y React renderizará el cero. En síntesis, no está mal usarlo, pero hay que conocer el pitfall que comentan los devs de React. Este comentario no es para criticar sino para sumar un aporte, felicito a todas las personas que tienen afán docente.
Exacto. Se agradece el material. Pero el título es incorrecto. Debería ser cuidado al usar renderizado condicional o algo así
Yo uso. !! Para la existencia en esos tipos de casos
viene bien para afianzar conocimientos
Hola Juanjo un abrazo desde Colombia, te felicito por tu contenido y el esfuerzo de hacerlo, estan super un abrazo (Y)
El ejemplo es un poco burdo, para hacerlo fallar tuviste que modificar la lógica inicial. Entonces el problema deja de ser responsabilidad del operador && para ser problema de como comparas True o False contra un contador.
Lo mismo pienso
Lo veo muy junior el error. Ese 0 en useState puede transpilarse como un string y por eso aparece
Es correcto, aun asi he visto muchos seniors que cometen el error, Kent C Dodds por ejemplo, lo cometio hace tiempo
@@JuanOrtizDev y? Sí ese señor se equivocó no significa que tú lo puedas hacer, solo trata de ponerle más carácter el asunto y listo
Excelente
el problema no es el and, el problema es no validar correctamente
Buen video para aclarar, hay muchos que cometen ese error 👍
apenas estoy entrando en el mundo react, que otros ejemplos no se deberia usar la logica AND
q raro que el && retorne un 0 si es un valor falsy no debería
Exacto!!, y es bien comun cometer estos errores. Es mejor prevenir
@@JuanOrtizDev buen video capo
pasa que && compara como booleanos, es decir que los transforma a booleanos para la comparación, pero cuando retorna el elemento lo retorna tal cual es. En la docu de mdn está muy claro.
ejemplo en vanilla:
let count = 0
let shorcut = count && "hammer"
console.log(shorcut) // retorna 0
console.log(typeof(shorcut)) // number
Efectivamente!! solo algo que pueda validar y devuelva un boolean. 👍