收藏
回答

setData的回调

问题模块
API和组件

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

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

10 个回答

  • Silvan
    Silvan
    07-01

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

    07-01
    赞同 11
    回复
  • M.J
    M.J
    2017-09-06

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

    2017-09-06
    赞同
    回复
  • 朱成昊
    朱成昊
    2017-09-07

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

    2017-09-07
    赞同
    回复
  • 朱成昊
    朱成昊
    2017-09-07

    setData() 参数格式

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


    2017-09-07
    赞同
    回复
  • M.J
    M.J
    2017-09-07

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

    2017-09-07
    赞同
    回复
  • 朱成昊
    朱成昊
    2017-09-07

    你代码贴出来看看呢

    2017-09-07
    赞同
    回复
  • M.J
    M.J
    2017-09-07


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

    2017-09-07
    赞同
    回复
  • M.J
    M.J
    2017-09-07

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

    2017-09-07
    赞同
    回复
  • 朱成昊
    朱成昊
    2017-09-07

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

    2017-09-07
    赞同
    回复
  • M.J
    M.J
    2017-09-07

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

    2017-09-07
    赞同
    回复