收藏
回答

onShow、onReady生命周期函数的问题

问题模块
API和组件

1、功能需求需要我通过wx.createSelectorQuery()API获取节点的初始top值

2、但是我把这个api放在onShow与onReady这两个生命周期函数里面,依旧不能拿到正确准确的top值

3、因为页面加载时候会给对应节点填充内容,所以正常来说放在这个两个函数内应该是可以拿到正确准确的top值的吧?

4、目前解决方案是给调用api时候加个定时器延迟调用。

5、恳请官方解答,这是不是生命周期函数的bug!!


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

5 个回答

  • 代码是我情人
    代码是我情人
    2017-09-11

    top值跟节点里面数据没关系的,只是节点相对于父定位容器的值而已

    2017-09-11
    赞同
    回复
  • Jeff
    Jeff
    2017-09-11

    是的,的确是可以拿到值,但如果节点内有数据需要进行填充,那么当前节点,以及节点下面的节点,就不能拿到准确的top值了。

    比如:没有填充数据前的top:90,填充后的top:390,在onReady和onShow里面只能拿到90,明明这两个生命周期函数是在页面全部渲染完成后才调用的,理应拿到填充后的390才对不行吗?

    还有一个问题就是在开发者工具里面,有时候能在这两个函数内调用api拿到准确,但是换成手机测试,就失败了

    2017-09-11
    赞同
    回复
  • 代码是我情人
    代码是我情人
    2017-09-11

    不知道你代码是怎样的,我的是在onload里面动态添加节点数据,然后在onReady里面可以拿到值



    2017-09-11
    赞同
    回复
  • Jeff
    Jeff
    2017-09-11

    试过了,onReady和onShow两个都不行,只要在onload里面给节点填充了数据,就那不到准确的top值

    2017-09-11
    赞同
    回复
  • 代码是我情人
    代码是我情人
    2017-09-11

    放在onReady里面可以拿到吖

    2017-09-11
    赞同
    回复