【发布时间】:2022-08-20 10:00:15
【问题描述】:
我正在使用 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.
我知道我可以降级以响应 17 或仅使用 \'next/link\' 组件,但我正在寻找一种解决方法,然后放弃。
-
您是否总是收到此错误消息?即使您不使用单个 react-bootstrap 组件?
-
不,仅当我包含上述内容时。
-
我下面的回答有帮助吗?
-
@IgorGonak 不抱歉,我试过但没有运气。不管怎么说,还是要谢谢你。
-
当您使用
react-bootstrap时,您能否分享该组件的完整代码?
标签: javascript reactjs next.js react-bootstrap