setData的回调
发布于 6 年前 作者 twu 10310 次浏览 来自 问答

setData的回调是在页面渲染完成时执行。目前碰到一个情况,setData的回调中获取某节点的top值,有时是正确的,但是概率性的会碰到图片没有渲染完成就获取值的情况。比如获取图片下方的某标签的top值,图片高度应该是310px,正常获取top值应该为310px,但是有时会获取到image标签默认高度,而不是310,即图片并没有完全渲染完成的情况。请确认下,这个是一个BUG还是我调用有问题?

10 回复

是的,我使用的是setData()的回调,目前的情况是,会频繁出现未渲染完成就执行回调的情况。举例出现的条件,比如我需要在页面渲染完成时,获取节点的信息,当页面中有image标签且图片大小自适应时,经常会获取到image标签的默认高度,而小概率获取到图片的高度,而我需要的是图片的高度。

这个问题很奇葩 2910年了 都还有这个问题。

为了避免这个情况,添加了一个定时。并且在图片上添加了bindload方法,bindload=“queryMultipleNodes”,用来在图片加载完成后获取高度,来覆盖掉之前错误的高度。但是这样总感觉怪怪。

不太清楚,只能用这个办法先解决了。也不知代码是不是哪有问题。不过感觉这个回调应该是有点问题的,如果不做其他处理,在ios上获取的高度几乎都是错误的。

setData有回调,基础库1.5.0后开始支持

我手动添加了一个定时。正常获取h5ElevatorTop的值应该是342,如果去掉定时,经常会获取到240,是image标签的默认高。

你代码贴出来看看呢

setData() 参数格式

字段类型必填描述最低版本
dataObject这次要改变的数据
callbackFunction回调函数1.5.0

代码上感觉没问题,不知道是BUG还是底层的问题

急!有页面渲染完成的回调吗?onReady并不是在页面全部渲染完成后调用的。只有setData的回调是在页面渲染完成的时候执行?但是会有问题。获取节点信息会出现问题

回到顶部