收藏
回答

这是否是基础库1.6.4的bug???

问题模块
API和组件

更新了基础库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吗?还是就是这样的机制啊

最后一次编辑于  2017-11-15  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • LastLeaf
    LastLeaf
    2017-11-15

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

    2017-11-15
    赞同
    回复
  • 晨光熹微
    晨光熹微
    2017-11-16

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

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

    2017-11-16
    赞同
    回复
  • LastLeaf
    LastLeaf
    2017-11-16

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


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


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

    2017-11-16
    赞同
    回复
  • 晨光熹微
    晨光熹微
    2017-11-16

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

    2017-11-16
    赞同
    回复