zoukankan      html  css  js  c++  java
  • qiankun 报错:Target container with #container not existed while xxx mounting!

    关于这个报错,官方文档说的及其不完善,且信息太少。

     意思就是:主应用为VUE时,路由含有过渡效果,就会出现。

    但是这只是报这个错误的一种可能,不一定是主应用引起,子应用也会。

    报此错的原因是:渲染子应用的过程中,container容器丢失导致;

    我遇到这个问题背景:主应用是 react,子应用 vue。

    以及追溯过程:

    1. 打了断点调试,发现在render的时候一开始是有 container容器的,但是到后面,整个页面的dom都丢失了。
    2. 注册子应用的时候,执行完loadApp函数会调用一次render,这时可以获取到container,函数会返回一个mount的队列;这个队列在后面执行的时候container为null
    3. 这时猜测是中间有代码,更改了document,但是无法确定是子应用、还是主应用。
    4. 首先排查主应用,切换子应用之后,可以正常接入。因此是子应用问题。
    5. 继续排查子应用,在子应用的index.html文件中发现问题代码 document.write
    6. 删去后,子应用正常接入。

    结论:

    Target container with #container not existed while xxx mounting

    说明它一开始是有container容器的,因为如果一开始就没有的话,报错应该是:Target container with #container not existed while xxx loading

    一开始有,中途没有了,那就一定是有代码改变了document,导致container丢失。所以需要从这个原因取排查代码。

  • 相关阅读:
    插入排序(二)
    选择排序(一)
    (转)示例化讲解RIP路由更新机制
    Css元素居中设置
    (转)盒子概念和DiV布局
    (转)浅析CSS——元素重叠及position定位的z-index顺序
    (转)Java中的static关键字解析
    (转)字符串循环移位
    linux把某个文件拷贝到不同的目录下面
    linux中查找文件并合并文件
  • 原文地址:https://www.cnblogs.com/ly0612/p/15433982.html
Copyright © 2011-2022 走看看