Я создаю страницу меню, используя React и Redux.В настоящее время у меня есть все меню из более чем 100 пунктов в массиве объектов, которое включает в себя свойство «категория» для типа еды (закуски, гамбургеры, десерты и т. Д.)из предметов и отображал их все так:
render(){
let foodList = this.props.foodMenu.map((food) => (
<Food className="food-menu" key={food.id} food={food} addToCart={this.addToCart}/>
))
return (
<div >
<h2>Food Menu</h2>
{foodList}
</div>
)
Однако я хочу иметь возможность разделить меню по категориям, что привело меня к следующему:
render(){
let appetizers = this.props.foodMenu.filter(food => food.category === 'appetizers').map((food) => (
<Food className="food-menu" key={food.id} food={food} addToCart={this.addToCart}/>
))
let soupsalad = this.props.foodMenu.filter(food => food.category === 'soupsalad').map((food) => (
<Food className="food-menu" key={food.id} food={food} addToCart={this.addToCart}/>
))
let steaks = this.props.foodMenu.filter(food => food.category === 'steaks').map((food) => (
<Food className="food-menu" key={food.id} food={food} addToCart={this.addToCart}/>
))
return (
<div>
<h2>Food Menu</h2>
<h3>Appetizers</h3>
<div className='container'>
{appetizers}
</div>
<h3>Soup or Salad</h3>
<div className='container'>
{soupsalad}
</div>
<h3>Steak</h3>
<div className='container'>
{steaks}
</div>
</div>
За исключением взамениз 3-х категорий у меня 12. Как видите, это начинает становиться чрезвычайно повторяющимся, а не «СУХИМ».Мне было интересно, есть ли более чистый способ сделать это?