收藏
回答

setData使用数据路径增加数组元素,在wxml中的class条件判断失效

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 客户端 all all

- 当前 Bug 的表现(可附上截图)


js 中 setData 使用数据路径增加数组元素

this.setData({

  'items[2]': 3

})


wxml 中 判断 items.length > 2 时加上 red class,使底色变红

<view class="{{items.length > 2 ? 'red' : ''}}">{{items.length}}</view>


,实际效果:

{{items.length}} 输出为3,但 class 并没有加上 red





- 预期表现



- 复现路径


- 提供一个最简复现 Demo

https://developers.weixin.qq.com/s/f4BqLsmF7b9R

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

3 个回答

  • 佳梨
    佳梨
    2019-07-06

    发现了其他人遇到的相同问题 https://developers.weixin.qq.com/community/develop/doc/000c8a7eeb45e8b018b72f01356800

    2019-07-06
    有用
    回复
  • 微盟
    微盟
    2019-06-28

    可以试下这种set值方式



    2019-06-28
    有用
    回复 1
    • mh
      mh
      2019-06-28

      谢谢你的回答,你的方法没有问题。

      我这里是指出使用数据路径更新渲染层数组元素后,wxml中对items.length取值的异同

      2019-06-28
      回复
  • 石三
    石三
    2019-06-28

    setTimeout(() => {

    var items = this.data.items;

    items[2]=3

    this.setData({

    items: items

    })

    }, 1000);

    这样试试看


    2019-06-28
    有用
    回复 1
    • mh
      mh
      2019-06-28

      在js中操作items数组然后setData的方法都是可以的。

      我这里是指出使用数据路径更新渲染层数组元素后,wxml中对items.length取值的异同

      2019-06-28
      回复
登录 后发表内容