回顾:获取数据
本课属于 Coddy React 学习旅程的“Next.js 基础”单元。第 28 课,共 47 课。
挑战
中等本章回顾:菜单中的所有内容都在服务器上加载。
lib/data.js 已提供并锁定:getDishes() 返回一个 Promise,其中包含一个由 { id, name, price } 对象组成的数组;getDish(slug) 则会查找其中的单个对象。
- 在
app/page.jsx中,将Home定义为async函数,并将await getDishes()的结果存入名为dishes的变量。 - 在
<ul id="dish-list">内,为每道菜渲染一个<li>,并设置key={dish.id}、id={dish.id},再将菜名name作为文本。 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>
);
}