suspensivos son significado puntos los cuáles javascript reactjs ecmascript-6

javascript - son - los puntos suspensivos



¿Qué hacen tres puntos en ReactJS (2)

Esta pregunta ya tiene una respuesta aquí:

const peopleList = this.state.people.map( x => { return <Person key={x.name} {...x} /> })

¿Qué significa "{... x}" este código?



Esta es una sintaxis de operador extendido en react.

De los MDN DOCS :

La sintaxis de propagación permite que una expresión se expanda en lugares donde se esperan múltiples argumentos (para llamadas a funciones) o múltiples elementos (para literales de matriz) o múltiples variables (para asignación de desestructuración).

En su caso, <Person key={x.name} {...x} /> Significa que envía todo el objeto o las propiedades contenidas con x como se ve como accesorios al Person Component

Por ejemplo si

var x = { name: "Hello", last_name: "World" }

Entonces, si lo hace <Person key={x.name} {...x} />

Lo anterior será equivalente a

<Person key={x.name} name={x.name} last_name={x.last_name}/>

El orden en el que se usa la sintaxis de propagación junto con los accesorios también es significativo.

Considere un caso en el que pasa los accesorios a un componente como

var data = { name: ''abc'', age: ''25'', college: ''lmit'' }

y si usas la sintaxis del operador de propagación como

<Person key={x.name} name=''xyz'' {...data} />

Luego, el name=''xyz'' la propiedad name=''xyz'' se sobrescribe con la clave: par de valores resuelto a partir de datos. Entonces la llamada final del componente Person se verá así

<Person key={x.name} name=''abc'' age= ''25'' college= ''lmit'' />

Sin embargo cuando lo escribes como

<Person key={x.name} {...data} name=''xyz'' />

Luego, el name=''abc'' del accesorio name=''abc'' que se resuelve a partir de los datos se sobrescribe con el name=''xyz'' que se pasa explícitamente a Person . Entonces la llamada final de Componente de Person se verá así

<Person key={x.name} name=''xyz'' age= ''25'' college= ''lmit'' />