Open LincWong opened 3 years ago
https://www.npmjs.com/package/react-jss
该库 Weekly Downloads 166,733 是 React CSS IN JS 最多人使用的解决方案,请 @kuitos 跟进处理一下
JSS keeps references to unmounted <style>
elements in its global sheets registry. It always start its search for the insertion point at this global registry, even if a new SheetsRegistry
is created on each micro app mount (or even if a new JSS
instance is created).
In my use case I had to do:
import { sheets } from "jss";
// [...]
sheets.reset();
This works if only one micro app using JSS is rendered at one time (singular/singleton scenario). Additional logic might be needed when rendering more than one.
Hello @LincWong. We totally like your proposal/feedback, welcome to send us a Pull Request for it. Please be sure to fill in the default template in the Pull Request, provide changelog/documentation/test cases if needed and make sure CI passed, we will review it soon. We appreciate your effort in advance and looking forward to your contribution!
你好 @LincWong,我们完全同意你的提议/反馈,欢迎直接在此仓库创建一个 Pull Request 来解决这个问题。请务必填写 Pull Request 内的预设模板,提供改动所需相应的 changelog、测试用例、文档等,并确保 CI 通过,我们会尽快进行 Review,提前感谢和期待您的贡献。
我同时手动加载多个子应用,也遇到这样的情况,样式 丢失了~
https://www.npmjs.com/package/react-jss
该库 Weekly Downloads 166,733 是 React CSS IN JS 最多人使用的解决方案,请 @kuitos 跟进处理一下
你解决这个问题了吗?
你好,我已经收到你的邮件了。
同问。
基座和子应用都用到了jss库,子应用之间切换的时候,切回已加载过的子应用,会引起jss内部sheet的取值不正确,引起sheet.cssRules null
的报错。
关闭沙箱模式后不存在这个问题,,但关闭沙箱担心引起作用域污染等问题。
你好,我已经收到你的邮件了。
emotion 在微前端切换时, 也会导致丢失样式. 本地开发不会出现, 生产会出现.
你好,我已经收到你的邮件了。
emotion 在微前端切换时, 也会导致丢失样式. 本地开发不会出现, 生产会出现. 请问有解决方案了吗
你好,我已经收到你的邮件了。
https://www.npmjs.com/package/react-jss
该库 Weekly Downloads 166,733 是 React CSS IN JS 最多人使用的解决方案,请 @kuitos 跟进处理一下
最新版本qiankun使用@ant-design/use-emotion-css也会有同样的问题,请问这个问题是否会解决
你好,我已经收到你的邮件了。
What happens?
父应用切换路由后,子应用 react-jss插入的样式丢失
父应用:vue2 子应用:react17 + react-jss
问题原因
react-jss 库的样式插入逻辑 避开了qiankun的劫持
https://github.com/cssinjs/jss/blob/18c2dd913d2d289c95c68ab3daf841716d78c65f/packages/jss/src/DomRenderer.js#L231
问题过程
第一次插入style,触发qiankun劫持的appendChild,会被挪到子应用container中。 第二次插入style,直接进到node.parent.insertBefore,这时node.parent是子应用的container,所以qiankun的所有劫持都感知不到插入的style;
问题现象
直接导致rebuild后,子应用样式丢失。
建议修复方案
子应用容器也加上appendChild、insertBefore监听 应该能解决这个问题?
相关环境信息