render(){
let langs = ["Ruby","ES6","Scala"]
return (<div>
{langs.map(it => <p>{it}</p>)}
</div>)
}
La correcta ejecución del método render()
en el código proporcionado, ilustra una funcionalidad esencial en React y JSX: la capacidad para renderizar listas dinámicamente.
JSX permite el uso de expresiones JavaScript incrustadas dentro del código HTML. En este ejemplo, la función langs.map()
se usa para transformar cada elemento del arreglo langs
en un elemento <p>
. La salida será un DIV que contiene un párrafo para cada idioma en el arreglo, lo que literalmente "muestra la lista de lenguajes en el arreglo", siendo esta la respuesta correcta.
El código JSX se verá así después de ser procesado:
<div>
<p>Ruby</p>
<p>ES6</p>
<p>Scala</p>
</div>
Esta técnica de uso de la función map()
para renderizar listas en React es comúnmente utilizada debido a su brevedad y legibilidad. Un ejemplo más práctico en una aplicación de React podría ser el renderizado de una lista de nombres de usuarios recibidos desde una API:
render(){
const users = ["Alice", "Bob", "Charlie"]
return (
<ul>
{users.map(user => <li>{user}</li>)}
</ul>
)
}
Cuando se renderizan listas de esta manera en React, es una buena práctica asignar un valor único a la propiedad key
de los elementos que se están produciendo, para ayudar a React a identificar qué items han cambiado, se han agregado o se han eliminado. Para esto, puedes usar identificadores únicos si los hay disponibles:
render(){
const users = [{id: 1, name: "Alice"}, {id: 2, name: "Bob"}, {id: 3, name: "Charlie"}]
return (
<ul>
{users.map(user => <li key={user.id}>{user.name}</li>)}
</ul>
)
}
Aunque se puede usar la función map()
de JavaScript directamente en JSX, es importante recordar manejar adecuadamente los posibles estados de null o undefined para evitar errores durante la ejecución.