Menu
Coddy logo textTech

Итоги: получение данных

Часть раздела Основы Next.js путешествия по React на Coddy — урок 28 из 47.

challenge icon

Задание

Средне

Итог главы: меню, которое загружает всё на сервере.

Файл lib/data.js предоставлен и заблокирован: getDishes() возвращает Promise для массива объектов { id, name, price }, а getDish(slug) ищет один элемент.

  1. В app/page.jsx сделайте Home функцией async и выполните await getDishes() в переменную dishes.
  2. Внутри <ul id="dish-list"> отрендерите по одному <li> для каждого блюда с key={dish.id}, id={dish.id} и с name блюда в качестве его текста.
  3. app/menu/[slug]/page.jsx показывает Unknown dish для каждого URL: он деструктурирует params без ожидания (без await). Используйте await для params, чтобы поиск получил настоящий slug. Переход по адресу /menu/carbonara должен показывать Carbonara в #dish-name и его price в #dish-price.

Попробуйте сами

import './globals.css';

export const metadata = {
    title: 'My App',
};

export default function RootLayout({ children }) {
    return (
        <html lang="en">
            <body>
                {children}
            </body>
        </html>
    );
}

Все уроки раздела Основы Next.js