【问题标题】:Issue with styled-components in "custom" single page application“自定义”单页应用程序中的样式组件问题
【发布时间】:2018-08-03 02:39:37
【问题描述】:

我目前正在处理一个旧项目,该项目有其“自己的方式”来执行单页应用程序(Ajax 调用 MVC 应用程序、获取视图、替换视图客户端、附加样式和大量其他的东西!!),虽然不理想,但目前我坚持下去!

我正在尝试将现有的 React 应用程序集成到该站点中,我正在做的是使用 create-react-app 然后 build 创建捆绑包,并在应用程序中,在视图中开始从特定页面的服务器,我放置了scriptlink 标签,指向我的捆绑文件。值得注意的是,这个服务器视图是部分 ASP.NET MVC 视图,所以我的scriptlink 标记在某种程度上是body 的一部分。

我还在我的 React 应用程序中使用 styled-components

现在,问题来了:当我第一次加载我提到的页面时,我的 script 已加载,并且我可以看到我的所有组件的样式都正确,但是当我在现有的自定义 SPA 应用程序中导航时,有时, 与styled-components 相关的样式被搞砸了,唯一的办法就是重新加载页面。

我正在检查页面,我看到styled-components 正在使用在head 中创建的自定义link 执行操作,并且我看到data-styled-components 属性在我的组件加载时填充了自定义类名,但是当问题出现时,在 Chrome 开发者工具中,我看到 link 标记闪烁,好像它已更改,但它保持不变。

我附上了标签的 GIF: - 它从初始页面加载开始 - 我离开然后回来,我看到更多的课程被附加 - 我重复这一步,我只看到它在闪烁

我知道这篇文章已经很长了,但非常感谢任何帮助。有没有可能,在当前的基础设施中,每当我回到页面时,服务器会发送一个 script 标签指向我的 React 包?

【问题讨论】:

    标签: javascript css reactjs styled-components


    【解决方案1】:

    感谢 Max Stoiber 回复 this GitHub issue:

    这种行为的原因正是我在问题末尾提到的:每次加载页面时,都会从服务器发送一个script标签,其中包含捆绑包,这反过来又会导致一个新的实例styled-components 待创建; styled-components 不支持此功能,这就是问题所在

    【讨论】:

      猜你喜欢
      • 2021-11-10
      • 1970-01-01
      • 2021-02-08
      • 2019-03-03
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 2018-03-22
      • 2019-10-18
      相关资源
      最近更新 更多