Comments (13)
复现步骤:
- 进入子应用页面,调用loadMicroApp加载子应用
- 快速切换到其他页面,这时候子应用到状态是Loading_source_code,还在加载中,突然销毁了container,所以报错:Target container with #xxx not existed while xxx loading!
- 返回子应用页面,重新调用loadMicroApp加载子应用,白屏,报错:Target container with #xxx not existed while xxx loading!
期望效果: 期望第3步无论如何重新唤起子应用
有一种办法可以达到你的期望,在qiankun执行前,注入 window.__SINGLE_SPA_DEVTOOLS__ = {}
; 这一步将single-spa的devtools方法注入到了window对象里。 之后遇到这个报错是可以通过 window.__SINGLE_SPA_DEVTOOLS__.exposedMethods.getRawAppData()[0].status = "NOT_LOADED"
重置应用的状态,在下次路由切换时即可使single-spa重新渲染改应用。(getRawAppData将获取所有当前注册的微应用,这里假设你的微应用是第一个)
from qiankun.
看了下singlespa的源码解析,
// 暴露的方法集合
// window.__SINGLE_SPA_DEVTOOLS__ single-spa在window中挂载的变量
if (isInBrowser && window.__SINGLE_SPA_DEVTOOLS__) {
window.__SINGLE_SPA_DEVTOOLS__.exposedMethods = devtools;
}
挂载的变量之前写错了,应该是__SINGLE_SPA_DEVTOOLS__
,但还是没有解决那个问题, window.__SINGLE_SPA_DEVTOOLS__.exposedMethods.getRawAppData()
拿到的是[]
from qiankun.
复现步骤:
- 进入子应用页面,调用loadMicroApp加载子应用
- 快速切换到其他页面,这时候子应用到状态是Loading_source_code,还在加载中,突然销毁了container,所以报错:Target container with #xxx not existed while xxx loading!
- 返回子应用页面,重新调用loadMicroApp加载子应用,白屏,报错:Target container with #xxx not existed while xxx loading!
期望效果:
期望第3步无论如何重新唤起子应用
from qiankun.
我遇到的问题和这个差不多,子应用正在加载时切换路由到其他页面,控制台报错 Uncaught Error: [qiankun]: Wrapper element for xxxx is not existed!
再跳转回到原来子应用路由页就显示不出来
from qiankun.
我遇到的问题和这个差不多,子应用正在加载时切换路由到其他页面,控制台报错 Uncaught Error: [qiankun]: Wrapper element for xxxx is not existed! 再跳转回到原来子应用路由页就显示不出来
这个问题也遇到过
from qiankun.
我遇到的问题和这个差不多,子应用正在加载时切换路由到其他页面,控制台报错 Uncaught Error: [qiankun]: Wrapper element for xxxx is not existed! 再跳转回到原来子应用路由页就显示不出来
你解决了么
from qiankun.
我遇到的问题和这个差不多,子应用正在加载时切换路由到其他页面,控制台报错 Uncaught Error: [qiankun]: Wrapper element for xxxx is not existed! 再跳转回到原来子应用路由页就显示不出来
你解决了么
没有呢,等待qiankun解决bug
from qiankun.
复现步骤:
- 进入子应用页面,调用loadMicroApp加载子应用
- 快速切换到其他页面,这时候子应用到状态是Loading_source_code,还在加载中,突然销毁了container,所以报错:Target container with #xxx not existed while xxx loading!
- 返回子应用页面,重新调用loadMicroApp加载子应用,白屏,报错:Target container with #xxx not existed while xxx loading!
期望效果: 期望第3步无论如何重新唤起子应用
有一种办法可以达到你的期望,在qiankun执行前,注入 window.SINGLE_SPA_DEVTOOLS = {} ; 这一步将single-spa的devtools方法注入到了window对象里。 之后遇到这个报错是可以通过 window.SINGLE_SPA_DEVTOOLS.exposedMethods.getRawAppData()[0].status="NOT_LOADED" 重置应用的状态,在下次路由切换时即可使single-spa重新渲染改应用。(getRawAppData将获取所有当前注册的微应用,这里假设你的微应用是第一个)
我在报错的时候去调用window.SINGLE_SPA_DEVTOOLS.exposedMethods.getRawAppData()报错了,没有exposedMethods这个属性,window.SINGLE_SPA_DEVTOOLS还是最初设置的{}
from qiankun.
我用的是"@umijs/plugin-qiankun": "2.37.2"
from qiankun.
What happens?
类似这个issue的问题(https://github.com/umijs/qiankun/issues/690),复现方式是将网络调整为slowly 3G,访问子应用页面然后立即离开页面(离开的时候状态应该是Loading_source_code),会报错:Target container with #xxx not existed while xxx loading! 然后重新进入子应用页面,页面白屏,一直报:Target container with #xxx not existed while xxx loading!
最小可复现仓库
我使用的是loadMicroApp手动加载
复现步骤,错误日志以及相关配置
相关环境信息
* **qiankun 版本** 2.7.4 * **浏览器版本**:版本 120.0.6099.71(正式版本) (x86_64) * **操作系统**:macos
我的乾坤版本是2.10.16,也出现了类似的报错,主应用侧边栏点击进入子应用时正常,子应用里的router.push进入新页面子应用执行unmunt,会有一样的报错
from qiankun.
What happens?
类似这个issue的问题(https://github.com/umijs/qiankun/issues/690),复现方式是将网络调整为slowly 3G,访问子应用页面然后立即离开页面(离开的时候状态应该是Loading_source_code),会报错:Target container with #xxx not existed while xxx loading! 然后重新进入子应用页面,页面白屏,一直报:Target container with #xxx not existed while xxx loading!
最小可复现仓库
我使用的是loadMicroApp手动加载
复现步骤,错误日志以及相关配置
相关环境信息
* **qiankun 版本** 2.7.4 * **浏览器版本**:版本 120.0.6099.71(正式版本) (x86_64) * **操作系统**:macos
我的乾坤版本是2.10.16,也出现了类似的报错,主应用侧边栏点击进入子应用时正常,子应用里的router.push进入新页面子应用执行unmunt,会有一样的报错
from qiankun.
我遇到的问题和这个差不多,子应用正在加载时切换路由到其他页面,控制台报错 Uncaught Error: [qiankun]: Wrapper element for xxxx is not existed! 再跳转回到原来子应用路由页就显示不出来
这个问题也遇到过
你的问题解决了吗,我也遇到同样的问题
from qiankun.
复现步骤:
- 进入子应用页面,调用loadMicroApp加载子应用
- 快速切换到其他页面,这时候子应用到状态是Loading_source_code,还在加载中,突然销毁了container,所以报错:Target container with #xxx not existed while xxx loading!
- 返回子应用页面,重新调用loadMicroApp加载子应用,白屏,报错:Target container with #xxx not existed while xxx loading!
期望效果: 期望第3步无论如何重新唤起子应用
有一种办法可以达到你的期望,在qiankun执行前,注入 window.SINGLE_SPA_DEVTOOLS = {} ; 这一步将single-spa的devtools方法注入到了window对象里。 之后遇到这个报错是可以通过 window.SINGLE_SPA_DEVTOOLS.exposedMethods.getRawAppData()[0].status="NOT_LOADED" 重置应用的状态,在下次路由切换时即可使single-spa重新渲染改应用。(getRawAppData将获取所有当前注册的微应用,这里假设你的微应用是第一个)
我在报错的时候去调用window.SINGLE_SPA_DEVTOOLS.exposedMethods.getRawAppData()报错了,没有exposedMethods这个属性,window.SINGLE_SPA_DEVTOOLS还是最初设置的{}
我这边解决方案是在调用loloadMicroApp的时候将container参数修改为具体的dom节点(而非名称),如:container: document.querySelector(#appContainer
), 运行挺长一段时间了,没问题
from qiankun.
Related Issues (20)
- Demo的vue2和vue3互切,vue2项目会报错,刷新才会恢复
- 项目实践——>微应用vue3——>vite HOT 7
- [Bug or Feature] Could't call `navigaor.serviceWorker.register` in Child App
- 3.0 的 demo 切换应用(react16)报错 Illegal invocation HOT 2
- [RFC] fontfaceobserver 2.1.0 use in qiankun 2.0.11,when new Object,show this issue: fontfaceobserver.standalone.js Error: 30000ms timeout exceeded,how to deal it HOT 1
- 路由跳转后立即触发页面的react-router 的history.block HOT 1
- 主子引用都使用element组件,子应用组件自带的动画效果@keyframes全部失效,例如el-dialog el-drawer
- 应用卸载后应用内异步设值 window.xxx.yyy 时抛错
- [Bug]qiankun好像不支持esmodule的语法
- 求教qiankun可以子应用是php吗???急 多谢大佬 HOT 1
- [Bug]主应用路由被拦截,地址栏地址会一直抖动,跳不过去 HOT 1
- qiankun的沙箱模式下window.fn !== fn HOT 1
- qiankun的沙箱模式导致window.fn !== fn HOT 1
- [Feature Request] say something
- 子项目单独启动,怎么给@@qiankunStateFromMaster设置全局默认值呢 HOT 1
- 本地调试子应用没有热更新 HOT 1
- vue3 + vite 作为子应用出现的问题解决办法
- 用qiankun,当settings中的layout为side和mix的时候,手动刷新页面,子应用无法加载,当为top的时刷新可以正常加载
- 开启experimentalStyleIsolation后,子应用组件样式里写上scoped的话,就会导致样式丢失 HOT 1
- 开启experimentalStyleIsolation后,子应用组件样式使用import引入时,样式会丢失
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qiankun.