收藏
回答

swiper 内 wx:for 使用对象的数组时出现问题?

1. 当 bannerList 直接在 data 中,swiper 下 wx:for="{{bannerList}}" 时是正常显示轮播图的

2. 但是将 bannerList 放在 data 下的 bannerInfo 对象中,swiper 下 wx:for="{{bannerInfo.bannerList}}" 就会报错,也不显示


这是为什么呢???

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

3 个回答

  • 微盟
    微盟
    2023-12-27
    或者可以使用 this.setData({
        "bannerInfo.bannerHeight": bannerHeight
      })
    


    2023-12-27
    有用 1
    回复 1
    • Koizora
      Koizora
      2023-12-27
      试了下,这样也可以,受教了,谢谢
      2023-12-27
      回复
  • showms
    showms
    2023-12-26

    跟data里面的数据应该是没关系,也跟有没有用block无关,看下是不是有其他地方设置了swiper的current,current默认是等于0,或者看下没有地方修改bannerInfo

    2023-12-26
    有用 1
    回复 1
    • Koizora
      Koizora
      2023-12-26
      谢谢,的确是在图片加载完成后,setData 时直接设置了 bannerInfo,只设置了高度,没有设置 bannerList,原来这样设置的不是增量。改了一下可以了
      2023-12-26
      回复
  • 游戏人生
    游戏人生
    2023-12-26

    emmm。。。报错是因为swiper 上没有添加 current属性

    不知道你为什么要多加一个block

    你试下 currentIndex:0

    <swiper current="currentIndex">  
    <swiper-item wx:for="{{bannerInfo.bannerList}}" wx:key="heihei">
    </swiper-item>
    </swiper>
    
    
    2023-12-26
    有用
    回复 3
    • Koizora
      Koizora
      发表于移动端
      2023-12-26
      但是为什么bannerList 直接写在data 下时,不加current 没问题呢?加 block 是因为看官方文档时说有多节点用block,没多想就加上block了,谢谢,我回去加上current 再试下
      2023-12-26
      回复
    • 游戏人生
      游戏人生
      2023-12-27回复Koizora
      有可能是动态引用的问题,因为 current在外部,data在内部
      2023-12-27
      回复
    • Koizora
      Koizora
      2023-12-27回复游戏人生
      解决了,是因为在图片加载完成后,我修改 bannerInfo 里的其他字段时直接设置的 bannerInfo 对象,以为只设置增量部分呢。改了下代码可以了。刚开始学习搞小程序,还不太熟悉。谢谢
      2023-12-27
      回复
登录 后发表内容