我正在使用 next.js、react18 和 next-auth。我有一个登录组件,它检查会话并根据您是否已登录显示登录或注销链接。
import Link from 'next/link';
const Login = () => {
const {data: session} = useSession();
if (session) {
return <Link href="#"><a onClick={() => signOut({callbackUrl: `${window.location.origin}`})}>Sign out</a></Link>
} else {
return <Link href="#"><a onClick={() => signIn()}>Log in</a></Link>
}
这个本来是按照预期工作的,但是后来我安装了react-bootstrap,然后将链接更改为以下内容:
import {Nav} from "react-bootstrap";
return <Nav.Link href="#"><a onClick={() => signOut({callbackUrl: `${window.location.origin}`})}>Sign out</a></Nav.Link>;
return <Nav.Link href="#"><a onClick={() => signIn()}>Log in</a></Nav.Link>;
我开始遇到了这个错误
Error: Hydration failed because the initial UI does not match what was rendered on the server.
我知道我可以降级到React 17或仅使用'next/link'组件,但在放弃之前,我正在寻找一种解决方法。
react-bootstrap
时组件的完整代码? - juliomalves