En React, no podemos usar un if
en el renderizado de un componente porque no es una expresión válida de JavaScript, es una declaración. Las expresiones son aquellas que devuelven un valor y las declaraciones no devuelven ningún valor.
En JSX solo podemos usar expresiones, por eso usamos ternarias, que sí son expresiones.
// ❌ Esto no funciona
function Button({ text }) {
return (
<button>
{if (text) { return text } else { return 'Click' }}
</button>
)
}
// ✅ Esto funciona
function Button({ text }) {
return (
<button>
{text ? text : 'Click'}
</button>
)
}
De la misma forma, tampoco podemos usar for
, while
o switch
dentro del renderizado de un componente.