评论

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  
点赞 1
收藏
评论

5 个评论

  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2020-03-19

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

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

    我们会尝试尽快解决。


    2020-03-19
    赞同 2
    回复 3
    • 小程序技术专员-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
      回复
  • 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)
  • 北向南
    北向南
    2020-03-19

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

    2020-03-19
    赞同
    回复
  • 王亚琪
    王亚琪
    2019-12-24

    https://docs.alipay.com/mini/framework/page-detail#pageprototypesplicedatadata-object-callback-function


    我只想实现个这玩意,官方能不能进来瞅瞅

    2019-12-24
    赞同
    回复
  • 马尚尚
    马尚尚
    2019-12-21

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

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