umijs / qiankun

📦 🚀 Blazing fast, simple and complete solution for micro frontends.
https://qiankun.umijs.org
MIT License
15.83k stars 2.02k forks source link

[Bug]切换应用时window.proxy指向不对 #1795

Open Aeero opened 3 years ago

Aeero commented 3 years ago

What happens?

主应用下有两个子应用A和B,切换子应用AB,chrome调试台里window.proxy指向不对,并不是指向当前active的应用

最小可复现仓库

官方repo即可

复现步骤,错误日志以及相关配置

step1

// react16子应用 增加代码
window.microFlag = 'react16';

// react15子应用 增加代码
window.microFlag = 'react15';

step2

刷新进入子应用react16,控制台输出window.microFlag (react16) 切换到子应用react15,控制台输出window.microFlag (react15) 再次切换到react16,控制台输出window.microFlag (react15)

相关环境信息

gongshun commented 2 years ago

在哪里打印的?mount 函数里面吗?

Aeero commented 2 years ago

在哪里打印的?mount 函数里面吗?

f12的控制台。目的是调试&排查问题,运行时是没有问题的。

gongshun commented 2 years ago

在哪里打印的?mount 函数里面吗?

f12的控制台。目的是调试&排查问题,运行时是没有问题的。

子应用的全局变量,是存在于沙箱上,真实的 window 上并不存在。你在控制台打印,应该是 undefined

Aeero commented 2 years ago

在哪里打印的?mount 函数里面吗?

f12的控制台。目的是调试&排查问题,运行时是没有问题的。

子应用的全局变量,是存在于沙箱上,真实的 window 上并不存在。你在控制台打印,应该是 undefined

我指的是window.proxy,主应用可以通过这个变量获取子应用的沙箱。

Aeero commented 2 years ago

可能是我理解有误,官网似乎没有明确说明window.proxy是用来获取子应用沙箱的方法。(比如说多实例的时候,没法表示)

wanghanemails commented 7 months ago
image

为啥我打印永远都仿佛没有开启沙箱。。。

zlyyyy commented 4 months ago

老哥这个问题有解决嘛