onShow、onReady生命周期函数的问题
发布于 6 年前 作者 bcheng 17573 次浏览 来自 问答

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

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

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

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

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

5 回复

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

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

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

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

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

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

放在onReady里面可以拿到吖

回到顶部