"custom" 单页应用程序中的样式组件问题
Issue with styled-components in "custom" single page application
我目前正在处理一个旧项目,该项目 "own way" 执行单页应用程序(Ajax 调用 MVC 应用程序、获取视图、替换视图客户端-side,附加样式和许多其他东西!!),虽然不理想,但目前我坚持使用它!
我正在尝试将现有的 React 应用程序集成到此站点中,我正在做的是使用 create-react-app
然后 build
创建捆绑包,并在应用程序中视图开始从服务器返回特定页面,我放置 script
和 link
标记,指向我的包文件。值得注意的是,此服务器视图是部分 ASP.NET MVC 视图,因此我的 script
和 link
标记在某种程度上是 body
.
的一部分
我也在我的 React 应用程序中使用 styled-components。
现在,问题来了:当我第一次加载我提到的页面时,我的 script
已加载,并且我可以看到我的所有组件的样式都正确,但是当我在现有的自定义 SPA 应用程序中导航时, 在某些时候,与 styled-components
相关的样式被弄乱了,唯一的办法就是重新加载页面。
我正在检查页面,我看到 styled-components
正在使用在 head
中创建的自定义 link
做事,我看到 data-styled-components
属性在我的组件加载时填充了自定义 class 名称,但是当问题出现时,在 Chrome 开发人员工具中,我看到 link
标签闪烁,好像它已更改,但它保持一样。
我附上了标签的 GIF:
- 它从初始页面加载开始
- 我导航离开并返回,我看到更多 classes 被附加
- 我重复了这个步骤,我只看到它在闪烁
我知道 post 已经很长了,但非常感谢任何帮助。是否有可能,在当前的基础架构下,每当我返回页面时,服务器都会发送一个 script
标记指向我的 React 包?
感谢 Max Stoiber 在 this GitHub issue 中的回答:
这种行为的原因正是我在问题末尾提到的:每次加载页面时,服务器都会发送一个 script
标记,其中包含包,这反过来会导致要创建的 styled-components
的新实例; styled-components
不支持,这就是问题
我目前正在处理一个旧项目,该项目 "own way" 执行单页应用程序(Ajax 调用 MVC 应用程序、获取视图、替换视图客户端-side,附加样式和许多其他东西!!),虽然不理想,但目前我坚持使用它!
我正在尝试将现有的 React 应用程序集成到此站点中,我正在做的是使用 create-react-app
然后 build
创建捆绑包,并在应用程序中视图开始从服务器返回特定页面,我放置 script
和 link
标记,指向我的包文件。值得注意的是,此服务器视图是部分 ASP.NET MVC 视图,因此我的 script
和 link
标记在某种程度上是 body
.
我也在我的 React 应用程序中使用 styled-components。
现在,问题来了:当我第一次加载我提到的页面时,我的 script
已加载,并且我可以看到我的所有组件的样式都正确,但是当我在现有的自定义 SPA 应用程序中导航时, 在某些时候,与 styled-components
相关的样式被弄乱了,唯一的办法就是重新加载页面。
我正在检查页面,我看到 styled-components
正在使用在 head
中创建的自定义 link
做事,我看到 data-styled-components
属性在我的组件加载时填充了自定义 class 名称,但是当问题出现时,在 Chrome 开发人员工具中,我看到 link
标签闪烁,好像它已更改,但它保持一样。
我附上了标签的 GIF: - 它从初始页面加载开始 - 我导航离开并返回,我看到更多 classes 被附加 - 我重复了这个步骤,我只看到它在闪烁
我知道 post 已经很长了,但非常感谢任何帮助。是否有可能,在当前的基础架构下,每当我返回页面时,服务器都会发送一个 script
标记指向我的 React 包?
感谢 Max Stoiber 在 this GitHub issue 中的回答:
这种行为的原因正是我在问题末尾提到的:每次加载页面时,服务器都会发送一个 script
标记,其中包含包,这反过来会导致要创建的 styled-components
的新实例; styled-components
不支持,这就是问题