私は David Lorenz の著書『Building Production-Grade Web Applications with Supabase』 (アフィリエイトリンク) に取り組んでおり、第 3 章 – チケット管理ページの作成…を終えたところです。いくつか問題が発生したので、その解決方法とともに共有したいと思います。
pageProps.children は無視して、子のままにすることができます。
ローレンツは次のように明確に述べていますが、
それでは、app/page.js を開き、Page コンポーネントを変更して、今のところ Login コンポーネントのみを返すようにします…
次に LoginPage を編集する指示に遭遇したときも、自分で探さなければなりませんでした。既存の page.js を使用するのではなく、新しいページを作成することを期待していましたが、そうではありません。page.js 内のすべてを消去し、本に記載されているように LoginPage コードのみを貼り付けます。
app/Login.js を切り替えロジック (パスワード フィールドのオン/オフを切り替えるため) で更新すると、次のエラーが表示され始めます。
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 | }
これを修正するには、app/page.js の LoginPage 関数を次のように非同期にします。
import { Login } from "./Login"; export default async function LoginPage({ searchParams }) { const params = await searchParams; const wantsMagicLink = params.magicLink === "yes"; return <login ispasswordlogin="{!wantsMagicLink}"></login>; }
この本では、Login.js のコードを次のように更新するように指示されています。
"use client"; import { useRef } from "react"; export const Login = () => { const emailInputRef = useRef(null); const passwordInputRef = useRef(null); return ( ... ) }ログイン後にコピーログイン後にコピー
これが完全に明確ではない場合に備えて、コードは次のようになります。
"use client"; import { useRef } from "react"; import Link from "next/link"; export const Login = ({ isPasswordLogin }) => { const emailInputRef = useRef(null); const passwordInputRef = useRef(null); return( ... ) }
どこに... 何も変更していません。基本的に、 return( on からのすべては以前とまったく同じままです。
私が上で指摘している「重要なこと」は、「next/link」から import Link を削除すべきではないということです。代わりに「クライアントを使用」を追加します。そしてその前に useRef import があります。
補足: 後で学ぶことになるかもしれませんが、ここで useState の代わりに useRef を使用するのは少し奇妙に感じますが、繰り返しになりますが、私は Next.js や React の専門家ではありません。
Login.js の return( ... ) 内で、現在の
以上がSupabase を使用した本番グレードの Web アプリケーションの構築 – パート 2の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。