qiankun icon indicating copy to clipboard operation
qiankun copied to clipboard

同时加载多个子应用,卸载后再打开白屏,single-spa minified message #31

Open Echonessy opened this issue 1 year ago • 1 comments

What happens?

打开tabA、打开tabB,关闭tabA,再打开tabA qiankun会挂载失败 single-spa minified message https://github.com/umijs/qiankun/issues/31

/**
 * @description: 2.4.4
 * @return {*}
 */
  const appInstanceId = `${appName}_${+new Date()}_${Math.floor(Math.random() * 1000)}`;
/**
 * @description: >2.4.4
 * @return {*}
 */
export const genAppInstanceIdByName = (appName: string): string => {
  const globalAppInstanceMap = getGlobalAppInstanceMap();
  if (!(appName in globalAppInstanceMap)) {
    nativeGlobal.__app_instance_name_map__[appName] = 0;
    return appName;
  }

  globalAppInstanceMap[appName]++;
  return `${appName}_${globalAppInstanceMap[appName]}`;
};

  const appInstanceId = genAppInstanceIdByName(appName);

这样会导致一个问题,就是我tabA unmount之后, globalAppInstanceMap[appName]++; 会从头开始计算,但是已经unmount了

最小可复现仓库

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

打开tabA、打开tabB,关闭tabA,再打开tabA qiankun会挂载失败 single-spa minified message https://github.com/umijs/qiankun/issues/31

相关环境信息

  • qiankun 版本 2.9.0
  • 浏览器版本:chrome
  • 操作系统

Echonessy avatar Sep 19 '23 08:09 Echonessy

关闭 tabA,需要手动卸载这个子应用

https://github.com/umijs/qiankun/issues/1734#issuecomment-947466824

gongshun avatar Sep 19 '23 09:09 gongshun