I’m doing a standard mapping like this; I use slice(0,1) to get only the first array item; without the slice will show all 10 categories in it own card
<div ClassName="card-div">
{carsTypes.map((carsType, i) => (
<div key={i}>
<div className="car-type-title">
<h6>{CarsType.title}</h6>
// The following makes a pagination number. i.e.: 1/10
<p>{carsTypes.indexOf(carsType) + 1} / {carsTypes.length}</p>
<button type="button">Next Car Type </button>
</div>
// This section map all the category names inside the card
{strapi[carsType.id].map((cars, i) => {
const brand = cars.brand
return (
<p className="cars-card-type" key={i}>
<Link
to={carsType.getPath(brand)}
className="btn-nav rounded-3"
>
{brand}
</Link>
</p>
)
})}
</div>
))}
How can create a button or a div that when users click on it; will pass the next card type (or category) from 1/10 to 2/10?
Advertisement
Answer
Fixed! No need to map all the array.
const [showCars, setCars ] = useState(0)
<div">
{carsType.map((carsType, i) => {
if (i === showCategory) {
return (
<div key={i}>
<div>
<h6>{carsType.title}</h6>
<p>{carsTypes.indexOf(carsType) + 1} / {carsTypes.length}</p>
</div>
{strapi[carsType.id].map((category, i) => {
const brand = category.brand
return (
<p key={i}>
<Link to={carsType.getPath(brand)}>
{name}
</Link>
</p>
)
})}
<div>
<button
type="button"
className="btn"
onClick={() => setcars(showCars + 1)}
>
Next
</button>
</div>
</div>
)}
})}
</div>
</div>
)
}