Ich arbeite gerade an David Lorenz‘ Buch „Building Production-Grade Web Applications with Supabase“ (Affiliate-Link) und habe gerade Kapitel 3 – Erstellen der Ticketverwaltungsseiten… abgeschlossen. Ich bin auf ein paar Probleme gestoßen und dachte, ich teile sie mit und erkläre, wie ich sie behoben habe.
Abschnitt: Einrichten von Pico.css mit Next.js
Sie können pageProps.children ignorieren und es als untergeordnete Elemente belassen.
Abschnitt: Erstellen des Anmeldeformulars
Sollte ich app/page.js wirklich als LoginPage bearbeitenErstellen produktionstauglicher Webanwendungen mit Supabase – Teil 2
Auch wenn Lorenz ausdrücklich sagt:
Öffnen Sie also app/page.js und ändern Sie die Komponente Page so, dass vorerst nur die Komponente Login zurückgegeben wird …
Ich musste trotzdem selbst suchen, als ich das nächste Mal auf Anweisungen zum Bearbeiten der LoginPage stieß. Ich habe erwartet, dass wir eine neue Seite erstellen, anstatt die vorhandene page.js zu verwenden, aber nein, löschen Sie alles in page.js und fügen Sie nur den LoginPage-Code ein, wie im Buch angegeben.
Fehler: searchParams sollte abgewartet werden
Sobald wir die App/Login.js mit der Umschaltlogik (zum Ein-/Ausschalten des Passwortfelds) aktualisieren, wird dieser Fehler angezeigt:
Error: Route "/" used `searchParams.magicLink`. `searchParams` should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis at LoginPage (src/app/page.js:3:38) 1 | import { Login } from "./Login"; 2 | export default function LoginPage({ searchParams }) { > 3 | const wantsMagicLink = searchParams.magicLink === "yes"; | ^ 4 | return <login ispasswordlogin="{!wantsMagicLink}"></login>; 5 | }
Um dies zu beheben, möchten wir die LoginPage-Funktion in app/page.js wie folgt asynchron machen:
import { Login } from "./Login"; export default async function LoginPage({ searchParams }) { const params = await searchParams; const wantsMagicLink = params.magicLink === "yes"; return <login ispasswordlogin="{!wantsMagicLink}"></login>; }
Speichern des Benutzernamens und Passworts
In dem Buch werden wir angewiesen, unseren Code in Login.js wie folgt zu aktualisieren:
"use client"; import { useRef } from "react"; export const Login = () => { const emailInputRef = useRef(null); const passwordInputRef = useRef(null); return ( ... ) }
Für den Fall, dass das nicht ganz klar ist, hier ist, wie Ihr Code aussehen sollte:
"use client"; import { useRef } from "react"; import Link from "next/link"; export const Login = ({ isPasswordLogin }) => { const emailInputRef = useRef(null); const passwordInputRef = useRef(null); return( ... ) }
Wo zum Teufel ändern wir nichtsErstellen produktionstauglicher Webanwendungen mit Supabase – Teil 2 Im Wesentlichen bleibt ab der Rückkehr( alles genau das Gleiche wie zuvor.
Die „große Sache“, auf die ich oben hingewiesen habe, ist, dass man den Import-Link nicht aus „next/link“ entfernen sollte; stattdessen „Client verwenden“ hinzufügen; und der useRef-Import davor.
Randbemerkung: Vielleicht erfahren wir es später, aber ich finde es etwas seltsam, hier useRef anstelle von useState zu verwenden, aber andererseits bin ich kein Next.js- oder React-Experte.
Wohin geht das onSubmit-EreignisErstellen produktionstauglicher Webanwendungen mit Supabase – Teil 2
Ersetzen Sie in Login.js innerhalb der return( ... ) das aktuelle
Das obige ist der detaillierte Inhalt vonErstellen produktionstauglicher Webanwendungen mit Supabase – Teil 2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Ich habe diese Frage neulich bekommen. Mein erster Gedanke ist: seltsame Frage! Bei der Spezifität geht es um Selektoren, und Rules sind keine Selektoren, also ... irrelevant?

Ja, Sie können, und es ist nicht wirklich wichtig in welcher Reihenfolge. Ein CSS -Präprozessor ist nicht erforderlich. Es funktioniert in regulären CSS.

Sie sollten auf jeden Fall weitausgestellte Cache-Header auf Ihren Vermögenswerten wie CSS und JavaScript (und Bilder und Schriftarten und was auch immer) festlegen. Das sagt dem Browser

Viele Entwickler schreiben darüber, wie sie eine CSS -Codebasis pflegen können, aber nicht viele von ihnen schreiben darüber, wie sie die Qualität dieser Codebasis messen. Sicher, wir haben

Haben Sie jemals ein Formular gehabt, das ein kurzes, willkürliches Stück Text akzeptieren musste? Wie ein Name oder was auch immer. Das ist genau das, wofür es ist. Es gibt viele

Ich bin so aufgeregt, nach Zürich, der Schweiz, zur Frontkonferenz zu gehen (liebe diesen Namen und diese URL!). Ich war noch nie in der Schweiz, also bin ich aufgeregt

Eine meiner Lieblingsentwicklungen in der Softwareentwicklung war das Aufkommen von Serverless. Als Entwickler, der die Tendenz hat, sich in den Details festzuhalten

In diesem Beitrag werden wir eine E -Commerce -Store -Demo verwenden, die ich für Netlify erstellt und bereitgestellt habe, um zu zeigen, wie wir dynamische Routen für eingehende Daten erstellen können. Es ist fair


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen