lishaobos / vite-plugin-legacy-qiankun

让 vite 集成 qiankun,支持 js,css 沙箱
104 stars 10 forks source link

切换子应用页面,在上一个页面的unmount之后下一个页面的mount之前报错 #27

Open HLDipsy opened 2 months ago

HLDipsy commented 2 months ago

背景: 主应用:umi3,使用umijs/plugin-qiankun
子应用: vite4+react18+dva 使用该插件 只注册一个子应用,使用组件引入方式,使用子应用的三个页面 本地启动主、子应用并配置 "$$cacheLifecycleByAppName": true ,没有任何问题 9f9090c56341887b29416a4cb927ac9

问题: 线上环境不开启沙盒正常访问,没有问题,但在子页面刷新浏览器后,在切换其他子应用页面会报错catch Error: Error:http://xxxx/rcweb/assets/index-legacy-3e9e6ae8.js(SystemJShttps://github.com/systemjs/systemjs/blob/main/docs/errors.md#2) at eval (polyfills-legacy-02480bfa.js:1:140571),但不影响使用,沙盒关闭共用一个window,可能存在冲突问题

开启沙盒,三个子应用页面,第一次进入没问题,切换到其他子页面时在上一个页面的unmount之后下一个页面的mount之前报错 d4f2531c30b2838205af1c530d9cd07

另外我发现,只用进入过子应用,子应用的路由表就一直作用在父应用上,跳转时先匹配子路由,匹配到就走子的,没匹配到就去匹配父的,进入一次子页面页面就会累加匹配一次。 大佬请问怎么解决,救救