这是否是基础库1.6.4的bug???
发布于 6 年前 作者 qiuli 967 次浏览 来自 问答

更新了基础库1.6.4,结果出现了莫名的bug。

操作如下:

  1. 在首页(一个tab分页)登录后,打开另一个tab分页(此时,首页进入onHide)

  2. 然后使用relaunch()跳转到一个页面A中。(此时,发现首页没有被卸载)

  3. 从这个页面A中,再次调用relaunch()返回首页。(此时,又产生了一个新的首页实例)

然后对比了2个首页的实例,发现基础库1.6.4的表现和之前的基础库不同,例如基础库1.6.0

我使用了一个单例,记录了每个首页的对象,然后进行比较,代码是这样的,在onload方法中:

之后试验的输出如下:

在基础库1.6.4中:

请问,出现这种现象是基础库的bug吗?还是就是这样的机制啊

4 回复

你好,是不是启用了自定义组件(usingComponents)呢?

原因和你想的不太一样。目前启用自定义组件会使得Page对象中的方法缺少bind(this),所以会导致你做比较的时候两个function相等。我们会修复这个问题。

注意:使用Component构造的组件不会bind(this),对框架做二次封装的时候请注意这点。

需要仔细分析的话,你可以把this log出来,仔细看下原型链。如果有什么不理解的地方,可以在下面追加讨论,谢谢!

好的,我继续研究下,谢谢

是的,启动了,请问是因为启动了组件之后,造成页面不能卸载吗?

但是我有3个页面使用了同一个自定义组件,并且都是tab页。其他2个都能正常的卸载。只有这个既是首页又是第一个tab页的页面实例不能正常的卸载

回到顶部