收藏
回答

列表中的图片删除其中一个后,image的bindload会再次执行,且赋值混乱

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug image 客户端 7.0.5 2.7.5

有一组数据,图片需要bindload拿到宽高,第一次接口获取数据后,bindload可正确执行且只执行一次,图片显示正常;之后删除其中一条数据,重新setData了,图片会执行bindload,但是图片会执行多次,每次拿到的宽高不一样,请问bindload到底什么时候会执行?

回答关注问题邀请回答
收藏

2 个回答

  • Listen
    Listen
    2019-07-25

    图片只有网络请求完成之后才会走bindload 事件,请求完之后就已经缓存在本地了,setData后不会走 bindload事件

    解决方案:

    1. 给图片固定宽度并且 mode="aspectFill" 这样图片的高度会自适应

    2.每个图片地址加个随机数,如: xxx.png?r=123   这样图片就不会被缓存 bindload 事件生效

    2019-07-25
    有用
    回复 3
    • July
      July
      2019-07-25

      谢谢你的回答。

      1、产品的需求是不光高度自适应:横长图,高度自适应;竖长图时,宽度自适应,所以才会采取计算宽高的;

      2、数据setData后,删除其中一条数据,再次setData,图片还是会执行bindload的,而且同一张图片会执行多次;

      2019-07-25
      回复
    • Listen
      Listen
      2019-07-25回复July
      可以让后端返回图片宽高信息,虽然后端会比较麻烦 但我就是这样做的
      2019-07-25
      回复
    • July
      July
      2019-07-25回复Listen

      倒也是个方法,但是要说服后端有一定难度

      2019-07-25
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-07-25

    当图片载入完毕时触发,可以提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2019-07-25
    有用
    回复 1
    • July
      July
      2019-07-25

      那我同一组数据多次进行setData,bindload会再次执行吗?而且有些图片的bindload会执行多次的

      2019-07-25
      回复
登录 后发表内容