저는 David Lorenz의 저서 Building Production-Grade Web Application with Supabase(제휴 링크)를 읽고 작업 중이며 3장 – 티켓 관리 페이지 만들기…를 방금 마쳤습니다. 몇 가지 문제가 발생하여 이를 해결한 방법과 함께 공유하고 싶습니다.
pageProps.children을 무시하고 하위 항목으로 남겨둘 수 있습니다.
Lorenz는 다음과 같이 명시적으로 말합니다.
그러므로 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"에서 가져오기 링크를 제거하면 안 된다는 것입니다. 대신 "클라이언트 사용"을 추가하세요. 그리고 그 전에 useRef 가져오기를 수행합니다.
참고: 나중에 배우게 될 수도 있지만 여기에서는 useState 대신 useRef를 사용하는 것이 조금 이상하다고 생각합니다. 하지만 다시 말씀드리지만 저는 Next.js 또는 React 전문가가 아닙니다.
Login.js에서 return( ... ) 내의 현재
위 내용은 Supabase를 사용하여 프로덕션급 웹 애플리케이션 구축 – 2부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!