Encontré este código y no entiendo {...{ [resourceName]: item }} dentro de los accesorios dentro del archivo RegularList.js .
Tengo dos preguntas:
sth.=sth .{...{ [resourceName]: item }} tratando de copiar aquí?Aquí está mi código:
RegularList.js
export const RegularList = ({ items, resourceName, itemComponent: ItemComponent, }) => { return ( <> {items.map((item, i) => ( <ItemComponent key={i} {...{ [resourceName]: item }} /> ))} </> ); };Aplicación.js
const products = [{ name: 'Flat-Screen TV', price: '$300', description: 'Huge LCD screen, a great deal', rating: 4.5, }, { name: 'Basketball', price: '$10', description: 'Just like the pros use', rating: 3.8, }, { name: 'Running Shoes', price: '$120', description: 'State-of-the-art technology for optimum running', rating: 4.2, }]; <RegularList items={products} resourceName="product" itemComponent={SmallProductListItem} />SmallProductListItem.js
export const SmallProductListItem = ({ product }) => { const { name, price } = product; return ( <h3>{name} - {price}</h3> ); }{ [resourceName]: item } Está creando un nuevo objeto con una clave dinámica resourceName
...{}Es operador de propagación.
Entonces, lo que se logra aquí es pasar un nombre de resourceName prop dinámico a su componente.
Por ejemplo, si resourceName === "foo" su ItemComponent tendrá el apoyo foo :
<ItemComponent foo={item} />