【发布时间】:2022-01-05 07:02:53
【问题描述】:
我有这个 Json 文件,它是由我创建的,所以如果我需要做一些重组,我会欢迎它。
[
{
"id": 1,
"nombre": "Tony Hawk Eye of the Hawk",
"stock": 10,
"precio": 10300,
"descripcion": "La tabla \"Eye of the Hawk\" integra los mejores estandares de calidad a la hora de construir una tabla de skate. Hecha de madera de arce resistente, esta tabla cuenta con superficie adherente en la plataforma y ejes de aluminio resistentes. Está decorada con un diseño gráfico de Hawk en la parte inferior.",
"imagen": "./images/skatetony2.jpg",
"categoria": "tabla de skate"
},
{
"id": 2,
"nombre": "Tony Hawk Diving Hawk",
"stock": 3,
"precio": 10300,
"descripcion": "La tabla \"Diving Hawk\" integra los mejores estandares de calidad a la hora de construir una tabla de skate. Hecha de madera de arce resistente, esta tabla cuenta con superficie adherente en la plataforma y ejes de aluminio resistentes. Está decorada con un diseño gráfico de Hawk en la parte inferior.",
"imagen": "./images/skatetony.jpg",
"categoria": "tabla de skate"
},
{
"id": 3,
"nombre": "Verb Adam Bergeisha",
"stock": 6,
"precio": 10300,
"descripcion": "Lujosa en diseño, la plataforma de skate modelo profesional \"Verb Adam Bergeisha\" más nueva de Nick Tucker está cubierta con un impresionante gráfico de una geisha en tonos metálicos y pastel.",
"imagen": "./images/geishaskate.jpg",
"categoria": "tabla de skate"
},
{
"id": 4,
"nombre": "Lizzie Birdhouse Medusa",
"stock": 3,
"precio": 10300,
"descripcion":"Este modelo inspirado en Lizzie Armanto ofrece un diseño duradero de arce hardrock y gráficos dementes de Medusa revisando su teléfono para un aspecto único que te inspirará a llamar a tus amigos para una sesión de patinaje.",
"imagen": "./images/skatemedusa.jpg",
"categoria": "tabla de skate"
},
{
"id": 5,
"nombre": "Hydroponic Pullet Mike",
"stock": 2,
"precio": 10300,
"descripcion":"Una tabla inspirada para todos los niveles de skaters, desde iniciales hasta pro's, con tapa de arce y un diseño fino, es ideal para probar todas las piruetas que quieras",
"imagen": "./images/skaterat.jpg",
"categoria": "tabla de skate"
},
{
"id": 6,
"nombre": "Hydroponic Mexican Skull",
"stock": 6,
"precio": 10300,
"descripcion":"Una tabla inspirada en las tipicas calacas mexicanas, con una construccion basada en arce y resina epoxi de 7 capas, es ideal para las piruetas mas extremas que tu mente puede planear",
"imagen": "./images/skatemex.jpg",
"categoria": "tabla de skate"
},
{
"id": 7,
"nombre": "Birdhouse Chicken",
"stock": 2,
"precio": 10300,
"descripcion":"Una tabla hecha con 7 capas de Hardrock Maple, lo que le aporta una mayor resistencia para poder hacer todos esos trucos que tanto nos gustan! ",
"imagen": "./images/birdchiken.jpg",
"categoria": "tabla de skate"
},
{
"id": 8,
"nombre": "Heart Supply Peace",
"stock": 2,
"precio": 10300,
"descripcion":"La Heart Supply Peace es una tabla de skateboard de calidad hecha de arce. Gracias a la construcción en arce disfrutarás de un pop excelente. Una base que presenta una forma de pop con doble kick, que te ayuda a conseguir potentes ollies y nollies con confianza.",
"imagen": "./images/skateheart.jpg",
"categoria": "tabla de skate"
},
{
"id": 9,
"nombre": "Vans Old Skool",
"stock": 2,
"precio": 15300,
"imagen": "./images/VansOldSkoolNegras.JPG",
"categoria": "calzado"
},
{
"id": 10,
"nombre": "Vans U Authentic",
"stock": 5,
"precio": 16300,
"imagen": "./images/VansUAuthentic.JPG",
"categoria": "calzado"
},
{
"id": 11,
"nombre": "Vans Era",
"stock": 5,
"precio": 10300,
"imagen": "./images/VansEra.JPG",
"categoria": "calzado"
},
{
"id": 12,
"nombre": "Vans Ultra Range",
"stock": 5,
"precio": 10300,
"imagen": "./images/VansUltraRangeNegras.JPG",
"categoria": "calzado"
},
{
"id": 13,
"nombre": "Vans U Sports",
"stock": 5,
"precio": 10300,
"imagen": "./images/VansUSports.JPG",
"categoria": "calzado"
}
]
拥有此文件后,我尝试对其进行映射并按其内部的类别对其进行过滤,问题是当我想为每个网格创建标题时,我只会为我映射的每个组件重复标题我没有实现我的目标,有人可以解释一下这个事实吗?
更新!现在开始工作!
const categories = [...new Set(products.map((category) => category.categoria))]
const renderCategory = (category) => {
return (
<div key={category}>
<h2>{category}</h2>
<div className="grillaProductos">
{products.filter((product) => product.categoria === category).map(product=>{
return <Item data={product} key={product.id}/>
})}
</div>
</div>
);
};
return <div>{categories.map(renderCategory)}</div>;
【问题讨论】:
-
没看懂,最后要打印什么?现在您正在打印每个元素的类别
-
@Giacomo 是的,但现在打印的是滑板类别的 8 倍,以及 calzado 类别的 5 倍。我想给你这个类别,一次,并显示 thar 像 h2 在项目地图中进行细分
-
也许您想按类别对数组进行分组并显示标题和属于该类别的所有项目?
-
现在我更新我的问题@AntonioPantano
标签: reactjs json filter dynamic element