我开始使用NextJS,我有这个水合错误:错误:由于初始UI与在服务器上呈现的UI不匹配,水合失败。
组件:
"use client";
import { useState, useEffect } from "react";
import { supabase } from "@/lib/supabaseClient";
import { Auth } from "@supabase/auth-ui-react";
import { ThemeSupa } from "@supabase/auth-ui-shared";
import { Session } from "@supabase/supabase-js";
export default function Login() {
const [session, setSession] = useState<Session | null>(null);
useEffect(() => {
supabase.auth.getSession().then(({ data: { session } }) => {
setSession(session);
});
if (typeof window !== "undefined") {
const {
data: { subscription },
} = supabase.auth.onAuthStateChange((_event, session) => {
setSession(session);
});
return () => subscription.unsubscribe();
}
}, []);
if (!session) {
return (
<div className="min-h-screen flex flex-col items-center justify-center">
<div className="w-full max-w-md">
<Auth
supabaseClient={supabase}
appearance={{
theme: ThemeSupa,
}}
providers={[]}
/>
</div>
</div>
);
}
}
谢谢你的帮助!:)
我想了解为什么水合作用和如何修复它
1条答案
按热度按时间8wtpewkr1#
您可能需要等到组件安装。这个简单的老把戏可以解决它。