Есть компонент, отвечающий за рендер товаров в интернет-магазине. Хочу, чтобы компонент был один, и в зависимости от условия выводил нужную информацию. В данном случае пользователь нажал на ссылку категории один - компонент вывел нужную информацию, нажал на категорию два - отобразилась она, и т.д.
Мое решение выглядит как-то так:
function ProductsPage({collections}) {
return (
<Route path="/products/type_one" render={() =>
<div>
<h1>Type One</h1>
<div className="products">
{
collections.category.typeOne.items.map((item) => {
return (
<ProductCard key={item.id} item={item} />
)
})
}
</div>
</div>
}/>
<Route path="/products/type_two" render={() =>
<div>
<h1>Type Two</h1>
<div className="products">
{
collections.category.typeTwo.items.map((item) => {
return (
<ProductCard key={item.id} item={item} />
)
})
}
</div>
</div>
}/>
)
}
Пока у меня только четыре подкатегории - это выглядит довольно безобидно. Но если их будут десятки, то код компонента будет забит подобной бесконечной копипастой. Есть ли более элегантный метод решения задачи?