שלב 8: השארת ביקורת
חלק מהיחידה היסודות של Next.js במסלול ה-React של Coddy. שיעור 46 מתוך 47.
אתגר
בינוניאפשר לאנשים לכתוב ביקורות על מנה.
- השלימו את הקובץ
app/actions.jsכך שיתחיל ב־'use server';וייצא אתasync function addReview(formData). - קראו את
slugואתtextמנתוני הטופס, התעלמו מ־textריק, ואז בצעוawait addReviewToDb(slug, text)וקראו ל־revalidatePath('/menu/' + slug)מתוךnext/cache. - בדף המנה, בצעו
await getReviews(slug)והוסיפו<section>מתחת למאמר.detail. - הוא מכיל
<form id="review-form" action={addReview}>עם שדה קלט מוסתרname="slug"שמכיל את ה־slug, שדה קלט טקסטid="review-input" name="text"ו־<button id="review-submit" type="submit">. - מתחת לטופס, הציגו
<ul id="review-list" className="reviews">עם רכיב<li>אחד לכל ביקורת, שלכל אחד מהםid={'review-' + index}.
נסו בעצמכם
import Link from 'next/link';
import './globals.css';
export const metadata = {
title: {
default: 'Coddy Eats',
template: '%s | Coddy Eats',
},
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<nav className="nav">
<Link className="brand" href="/">Coddy Eats</Link>
<Link id="nav-menu" href="/">Menu</Link>
<Link id="nav-desserts" href="/?category=dessert">Desserts</Link>
</nav>
<div className="container">
{children}
</div>
</body>
</html>
);
}כל השיעורים ביחידה היסודות של Next.js
5נתונים בשרת
רכיבים אסינכרונייםהמתנה לפרמטרים של נתיבשתי פעולות Fetch במקבילמצבי טעינהטיפול בשגיאותסיכום: שליפת נתונים8פרויקט: Coddy Eats
שלב 1: המעטפת