收藏
回答

遇到了一个关于image组件的问题,bindload就触发一次,但是network里疯狂请求图片?

emm,页面很简单,就这样一个结构:skyline模式的scroll-view与grid-view的组合:

[这个z-image组件只是给image下面加了一行标题,其他基本都是透传]

<scroll-view type="custom" :padding="[0, 8, 8, 8]" :show-scrollbar="false" scroll-y enable-back-to-top>
    <grid-view type="masonry" :main-axis-gap="8" :cross-axis-gap="8">
        <z-image v-for="(item, idx) in data.goods" :key="idx" :src="item.src" :title="item.title" @load="bindload" />
    </grid-view>
</scroll-view>
<script setup>
const bindload = e => {
    console.log('bindload', e.detail)
}
</script>


页面呢,看起来也很正常, bindload也确实执行了一次:

鬼畜的事情来了,一直在请求图片,几乎瞬间就有几百个请求。。。

代码结构很简单没有复杂的东西,这个自定义的组件z-image只是给image按照固定宽度动态计算了一个等比高度style,顺便给下面封装了一个标题,其他啥也没干

神奇的是如果是一个webview页面,它就正常的;

或者说在skyline的页面里,不放在scroll-view与grid-view的组合里,直接使用,也是ok的。

更神奇的是,说出来你可能不信其实我也不太信跟这有关,这点代码其实在重启[微信开发者工具]之前都是好的,重启之后就这样了,这期间从代码暂存记录上看是无任何改动的。

至于为啥要重启,是因为它提示要重启,mac版,版本是1.06.2502272

所以有点摸不着头脑了,到底是我对组件的使用有问题、还是skyline的问题,还是开发者工具的问题呢。。。有人遇到过类似的问题吗?

或者说,有没有什么情况下,bindload只会执行一次,但确实会请求多次图片?

--------------

刚试了一下,把z-image换成直接使用image,问题依旧。

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

2 个回答

  • 社区技术运营专员--Demons
    社区技术运营专员--Demons
    03-03

    你好麻烦提供完整复现的代码片段,

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    03-03
    有用
    回复 3
    • zohu
      zohu
      03-03
      已经解决,可以稳定复现了:
      【skyline + scroll-view + grid-view + if + style=Object】稳定复现,但还是看不清这个跟请求有什么关系
      03-03
      回复
    • zohu
      zohu
      03-03
      我发现你们官方的示例就有这个问题,你直接看这个吧
      https://developers.weixin.qq.com/miniprogram/dev/component/share-element.html


      文档这个页面下面的skyline示例:
      点击【测试图片不同mode的影响】这一个,进去点一下图片,就开始了。
      03-03
      回复
    • zohu
      zohu
      03-03
      03-03
      回复
  • 早上七八点钟的太阳
    早上七八点钟的太阳
    2天前

    请问有解决办法吗?我也遇到了这种情况,skyline + page-container组件内显示图片,设置show为true后,开始疯狂请求图片,show为false后停止请求

    2天前
    有用
    回复
登录 后发表内容