html52.com
我爱小程序-开发者交流社区

setData的回调

问题模块
API和组件

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

网友回复

M.J:

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

朱成昊:

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

M.J:

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

M.J:

我手动添加了一个定时。正常获取h5ElevatorTop的值应该是342,如果去掉定时,经常会获取到240,是image标签的默认高。
我手动添加了一个定时。正常获取h5ElevatorTop的值应该是342,如果去掉定时,经常会获取到240,是image标签的默认高。我手动添加了一个定时。正常获取h5ElevatorTop的值应该是342,如果去掉定时,经常会获取到240,是image标签的默认高。朱成昊:你代码贴出来看看呢

朱成昊:

你代码贴出来看看呢

M.J:

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

朱成昊:

setData() 参数格式

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


朱成昊:

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

M.J:

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

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付