加载下一个受保护的页面显示错误的消息,然后加载之前和加载之前
考虑一个sinple next.js页面
const Index: NextPage = () => {
const {data: session} = useSession();
const [data, setData] = useState(null);
const [isLoading, setLoading] = useState(false);
useEffect(() => {
setLoading(true)
fetch('/api/myEndpoint')
.then((res) => res.json())
.then((data) => {
setData(data);
setLoading(false);
});
}, []);
if(isLoading) {
return <Spinner/>;
}
if(session) {
return <p>here is my protected content</p>
} else {
return <p>you cant see this page</p>
}
}
时,当我没有登录时,我会看到“您看不到此页面”,然后是旋转器,然后再次“您看不到此页面”。很好。
但是,当我登录时,我会看到“您看不到此页面”,然后是旋转器,然后看到受保护的内容。
即使我尝试
if(session && data) {
如何完全删除“您看不到此页”,直到页面完全加载?
Consider a sinple next.js page like this
const Index: NextPage = () => {
const {data: session} = useSession();
const [data, setData] = useState(null);
const [isLoading, setLoading] = useState(false);
useEffect(() => {
setLoading(true)
fetch('/api/myEndpoint')
.then((res) => res.json())
.then((data) => {
setData(data);
setLoading(false);
});
}, []);
if(isLoading) {
return <Spinner/>;
}
if(session) {
return <p>here is my protected content</p>
} else {
return <p>you cant see this page</p>
}
}
When I am not logged in I see "you cant see this page", then the spinner, then again "you cant see this page". And that's fine.
But when I am logged in, I see "you cant see this page", then the spinner, and then the protected content.
Same thing even if I try
if(session && data) {
How can I get rid completly of the "you cant see this page" until the page is completly loaded?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试 :
如果(会话&amp;&amp;!isloading)
或者
if(session&amp;&amp; isloading === false)
Try :
if(session && !isLoading)
or
if(session && isLoading===false)