Skip to content

Question 2

Design and develop a class component in React that

  • Displays a list of restaurants, where each restaurant contains a nested list of menu items
  • Apply unique keys for each item.

RestaurantList.jsx

jsx
import React, { Component } from "react";

class RestaurantList extends Component {
  render() {
    const restaurants = [
      {
        id: 1,
        name: "Pizza Place",
        menu: [
          { id: 1, item: "Margherita" },
          { id: 2, item: "Pepperoni" },
          { id: 3, item: "BBQ Chicken" },
          { id: 4, item: "Vegetarian" },
        ],
      },
      {
        id: 2,
        name: "Sushi Bar",
        menu: [
          { id: 1, item: "California Roll" },
          { id: 2, item: "Tuna Sashimi" },
          { id: 3, item: "Tempura" },
          { id: 4, item: "Miso Soup" },
        ],
      },
      {
        id: 3,
        name: "Burger Joint",
        menu: [
          { id: 1, item: "Cheeseburger" },
          { id: 2, item: "Bacon Burger" },
          { id: 3, item: "Veggie Burger" },
          { id: 4, item: "Fries" },
        ],
      },
    ];
	// Using component key for menue list
    return (
      <div className="restaurant-list">
        <h2>Restaurant Menu List</h2>
        <ul>
          {restaurants.map((restaurant) => (
            <li key={restaurant.id}>
              <h3>{restaurant.name}</h3>
              <ul>
                {restaurant.menu.map((menuItem) => (
                  <li key={`${restaurant.id}-${menuItem.id}`}>
                    {menuItem.item}
                  </li>
                ))}
              </ul>
            </li>
          ))}
        </ul>
      </div>
    );
  }
}

export default RestaurantList;

Made with ❤️ for students, by a fellow learner.