评论

setData设置数组时,模板中绑定到标签属性的数组长度不会改变

为什么一定要提问题或者发文章,我就想报BUG

为什么一定要提问题或者发文章,我就想报BUG

wxml代码

<view class="container">
  <view wx:for="{{arr}}" wx:key="{{index}}" data-length="{{arr.length}}" bindtap="onTap">{{item}} {{arr.length}}</view>
</view>

js代码

Page({
  data: {
    arr: [1, 2, 3]
  },
  onTap: function() {
    this.setData({
      'arr[3]': 1
    })
    console.log(this.data.arr)
  }
})

可以看到点击之后标签内的arr.length被更新了,但是前三个标签的data-length属性仍然为3

最后一次编辑于  2019-12-20  
点赞 2
收藏
评论

6 个评论

  • LastLeaf
    LastLeaf
    2020-03-19

    这个是我们的一个已知 bug 。修复起来比较复杂,所以暂时还没有修复。

    这个 bug 发生在使用 setData 的路径表达式去新增数组项目时,数组的相关信息并没有被重新计算,典型表现是 length 没有重新应用。

    我们会尝试尽快解决。


    2020-03-19
    赞同 2
    回复 4
    • LastLeaf
      LastLeaf
      2020-03-19
      另外,这样做对性能通常不会有明显影响,如果可以的话请考虑设置整个数组。
      2020-03-19
      1
      回复
    • 2020-03-20
      感谢回复 ,还是希望能支持一下
      2020-03-20
      回复
    • Clevo
      Clevo
      2020-09-28
      我们今天也碰到了相同的问题,因为我们的列表是滚动加载,10,20条.。。。100条,200条。不支持的话,每次都得setData整个数组
      2020-09-28
      回复
    • 奋斗的酸菜咸鱼
      奋斗的酸菜咸鱼
      2021-04-06回复LastLeaf
      setData整个数组会传输整个数组的数据到视图层吧,会增大传输的数据量
      2021-04-06
      回复
  • Mr.Zhao
    Mr.Zhao
    2019-12-21

    你可这样写,你这问题很久之前就有人提问

    2019-12-21
    赞同 1
    回复 13
    • 小肥羊🍊
      小肥羊🍊
      2019-12-21
      这两种写法有什么不一致吗?setData不是支持这种方式吗??
      2019-12-21
      回复
    • Mr.Zhao
      Mr.Zhao
      2019-12-21回复小肥羊🍊
      你自己运行一下,看看区别
      2019-12-21
      回复
    • 小肥羊🍊
      小肥羊🍊
      2019-12-21回复Mr.Zhao
      我知道区别,我是说微信支持这种setData的方式,为什么两种方式运行下来,结果会不一样?
      2019-12-21
      回复
    • Mr.Zhao
      Mr.Zhao
      2019-12-22回复小肥羊🍊
      支持归支持,结果为什么要一样呢?区别在哪呢,说说
      2019-12-22
      回复
    • 2019-12-23回复Mr.Zhao
      区别在于差量
      2019-12-23
      回复
    查看更多(8)
  • 百山
    百山
    2021-04-06

    都一年多了,到底有没有修复计划?

    2021-04-06
    赞同
    回复
  • 奋斗的酸菜咸鱼
    奋斗的酸菜咸鱼
    2021-04-06

    已经过去一年了 ,还没修复。。。。

    2021-04-06
    赞同
    回复
  • 北向南
    北向南
    2020-03-19

    同遇到,代码片段:https://developers.weixin.qq.com/s/oXMwpXmN7afl

    2020-03-19
    赞同
    回复
  • 小肥羊🍊
    小肥羊🍊
    2019-12-21

    这个真是涨姿势了,多谢分享。

    2019-12-21
    赞同
    回复
登录 后发表内容