【发布时间】:2019-03-05 22:42:28
【问题描述】:
我使用styled-components 实现了 SSR。
当页面使用 SSR 加载时,一切看起来都很好。但是,当app.js 与 SSR 版本一起加载和水合时,页面缺少一些样式并且很少有元素中断。
更重要的是 - 当我在本地打开应用程序时,使用 npm start 或基本上只是删除我的 SSR,一切正常并且样式被正确应用。
重要提示:当我进入页面并且app.js 加载和样式被破坏时,如果我更改路线 - 新路线将正确显示应用样式并且问题......消失了。
- SSR 加载 - 样式很好
- 然后几秒后 app.js 加载(水合过程) - 样式被破坏
在本地运行应用程序 - 样式没有问题
在没有 SSR 的情况下运行应用程序 - 样式没有问题
简而言之 - 如果我使用 SSR 缺少一些样式,SSR 本身会返回正确的样式,但在使用 app.js 水合后,很少有组件损坏。
我敢打赌这可能是styled-components 的问题。除了缺少样式的一个组件外,SSR 工作正常,其他一切正常。
我知道关于我的案例的信息相当不完整,但为了显示可能导致此错误的每个部分,我应该发布整个项目,但是也许您遇到过类似的案例,您会以某种方式帮助我。谢谢。
编辑:我的babel-styled-component-plugin 配置:
['babel-plugin-styled-components', {
ssr: true,
displayName: false,
fileName: false,
transpileTemplateLiterals: false,
minify: false,
}],
【问题讨论】:
标签: reactjs server-side-rendering styled-components isomorphic-javascript