icestark icon indicating copy to clipboard operation
icestark copied to clipboard

loadScriptMode:'script' 情况下子应用之间跳转空白

Open xzz12234-lab opened this issue 2 years ago • 2 comments

条件:

  1. 子应用的loadScriptMode为script
  2. 子应用之间跳转,

问题:由于microApps中缓存了所有的子应用数据,所以在做添加script节点时,没有执行loadAndAppendJsAssets方法,导入无法检测到子应用的生命周期函数报错,希望尽快帮忙处理一下,感谢

xzz12234-lab avatar Jun 28 '22 06:06 xzz12234-lab

能否简单提供一个 demo 方便快速复现修复

ClarkXia avatar Jul 18 '22 02:07 ClarkXia

可以参考下我这段代码,写在 FrameWorkLayout中 appEnter 这个useEffect ,可以解决我说的问题

Array.from(document.getElementsByTagName('script')).forEach(item => {  if (((item.src.includes('.xxx.com')) && appEnter && appEnter.url)  ){    if (item.src !== appEnter.url[0]){      const doc = document.querySelector('head')      Array.from(doc.children).forEach(_item => {        if (_item === item) {          doc.removeChild(item)        }      })    }  } else if (((item.src.includes('localhost')) && appEnter && appEnter.url)  ){    if (item.src !== appEnter.url[0]){      const doc = document.querySelector('head')      Array.from(doc.children).forEach(_item => {        if (_item === item) {          doc.removeChild(item)        }      })    }  }})

xzz12234-lab avatar Oct 25 '22 08:10 xzz12234-lab