更新了基础库1.6.4,结果出现了莫名的bug。
操作如下:
在首页(一个tab分页)登录后,打开另一个tab分页(此时,首页进入onHide)
然后使用relaunch()跳转到一个页面A中。(此时,发现首页没有被卸载)
从这个页面A中,再次调用relaunch()返回首页。(此时,又产生了一个新的首页实例)
然后对比了2个首页的实例,发现基础库1.6.4的表现和之前的基础库不同,例如基础库1.6.0
我使用了一个单例,记录了每个首页的对象,然后进行比较,代码是这样的,在onload方法中:
之后试验的输出如下:
在基础库1.6.4中:
请问,出现这种现象是基础库的bug吗?还是就是这样的机制啊
原因和你想的不太一样。目前启用自定义组件会使得Page对象中的方法缺少bind(this),所以会导致你做比较的时候两个function相等。我们会修复这个问题。
注意:使用Component构造的组件不会bind(this),对框架做二次封装的时候请注意这点。
需要仔细分析的话,你可以把this log出来,仔细看下原型链。如果有什么不理解的地方,可以在下面追加讨论,谢谢!
你好,是不是启用了自定义组件(usingComponents)呢?
好的,我继续研究下,谢谢
是的,启动了,请问是因为启动了组件之后,造成页面不能卸载吗?
但是我有3个页面使用了同一个自定义组件,并且都是tab页。其他2个都能正常的卸载。只有这个既是首页又是第一个tab页的页面实例不能正常的卸载