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

发布于 8 年前作者 bcheng17707 次浏览最后编辑 8 年前来自 ask

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

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

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

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

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

5 回复
weixiang
weixiang1 楼6 年前

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

ayi
ayi2 楼6 年前

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

naguo
naguo3 楼6 年前

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

ming23
ming234 楼6 年前

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

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

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

gyin
gyin5 楼6 年前

放在onReady里面可以拿到吖