Menu
CoddyTech

回顾:获取数据

本课属于 Coddy React 学习旅程的“Next.js 基础”单元。第 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 对所有 URL 都显示 Unknown dish:它解构 params 时没有使用 await。请等待 params,这样查找时才能获得真实的 slug。访问 /menu/carbonara 时,#dish-name 必须显示 Carbonara,#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 基础中的所有课