Menu
Coddy logo textTech

Passaggio 8: Lascia una recensione

Fa parte della sezione Nozioni essenziali di Next.js del percorso React di Coddy. Lezione 46 di 47.

challenge icon

Sfida

Medio

Consenti alle persone di recensire un piatto.

  1. Completa il file app/actions.js iniziando con 'use server'; ed esporta async function addReview(formData).
  2. Leggi slug e text dai dati del modulo, ignora un text vuoto, quindi esegui await addReviewToDb(slug, text) e chiama revalidatePath('/menu/' + slug) da next/cache.
  3. Nella pagina del piatto, esegui await getReviews(slug) e aggiungi una <section> sotto l'articolo .detail.
  4. Contiene <form id="review-form" action={addReview}> con un input nascosto name="slug" che contiene lo slug, un input di testo id="review-input" name="text" e <button id="review-submit" type="submit">.
  5. Sotto il modulo, visualizza <ul id="review-list" className="reviews"> con un elemento <li> per ogni recensione, ciascuno con id={'review-' + index}.

Provalo tu

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>
    );
}

Tutte le lezioni di Nozioni essenziali di Next.js