css - 条件渲染组件,Next.js 样式在第一次加载时被破坏
问题描述
我正在使用 Ant Design 和自定义样式表。第一次加载样式被破坏,但是当我访问另一个页面并返回到损坏的页面时,现在看起来很好。所以问题只在第一次加载。它在开发服务器上,我已经清除了所有缓存。但仍然是同样的问题。
这是第一次加载后的截图
这是我从另一页回来后的正确样式
这是我如何渲染组件的代码:
<div>
{jwToken || role === "restaurant_owner" ? (
<Layout>
<Index />
</Layout>
) : (
<div>
<Login />
</div>
)}
</div>
解决方案
我有一个类似的问题,我修复它的方法是添加一个mounted
取决于条件的变量。所以看起来是这样的。
// Not sure how you pass the condition, I'm assuming hooks
const { condition } = someHook()
const [mounted, setMounted] = useState()
useEffect(() => {
setMounted(true)
return () => setMounted(false)
}, [condition]);
return (
<div>
{mounted && condition && <Component/>
</div>
)
至于为什么会发生这种情况,我怀疑它与 SSR 有关(我在 Github 上发现了类似的问题,但对于 Material-UI),我的解决方案强制该条件仅在浏览器期间可用。
推荐阅读
- amazon-web-services - aws lambda 权限中的 SourceArn 是什么
- azure - 逻辑应用程序(从数据库中读取 EmailID 并发送电子邮件)
- python - 在检查当前时间是否为 T 时继续 WebSocket
- node.js - 在 Heroku 上托管我们的应用程序时,我们是否需要将 docs 文件夹添加到 .gitignore?
- python - 如何使用正则表达式根据开始和结束搜索字符串的一部分?
- python - 如何使用 zip 实现对具有列表值的两个键的这种 dict 理解?
- android - 在 Firebase 中,我只看到与某一天相关联的用户,并且与总用户数不匹配?(多日有活动)
- django - 我想将 django 与芹菜(redis)一起使用。我需要在我的 django 应用程序的服务器上安装 redis 吗?或者我可以有一个单独的redis服务器吗?
- c# - C#中的MongoDb聚合
- powershell - 无法使用 powershell 在 jenkins 管道中运行 exe