微信小程序> 小程序之this.setData动态修改数据某个下标的值

小程序之this.setData动态修改数据某个下标的值

浏览量:4149 时间: 来源:weixin_34290390

1.基本使用

data:{
demo:1
}
比如上面这个data里面的demo,我们需要修改它的值。通常来说有两种方法:
1.直接this.data.demo 用 ‘=’来进行赋值,这是可行的,不过因为data里的数据一般都是跟页面进行绑定了的,我们直接‘=’赋值容易发生数据发生页面没有变化的情况发生。所以一般我们都是用第二种方法
2.this.setData({
demo:2
})
这种方法可以更新数据的时候同时更新渲染界面

2.动态修改

data: {
demo:2,
params: [{cut: true},{cut: true},{cut: true}]
}
这次我们想要修改isDemo里面的特定下标的值,并且这个值是动态的,我们该怎么写:
直接假设一个wx:for循环的情况吧

 view class='main-tow' wx:for='{{params}}' wx:for-index="bindex"  view class='main-head' data-bindex='{{bindex}}' bindtap='onHidden'    text{{item.cut}}/text  /view  /view复制代码

上面这个wxml里面,首先,我们通过wx:for-index进行key键的绑定,然后再需要绑定的view里面进行赋值data-bindex='{{bindex}}',这样我们就可以在js里面通过e.currentTarget.dataset.bindex,得到你渲染出来后选中点击view的下标。
这是你继续进行this.setData会得到一个报错Only number 0-9 could inside []:。解决方法:
let index = e.currentTarget.dataset.bindex;
 //根据点击不同的view获取对应的id值
let arr = this.data.params;
//重点在这里,组合出一个字符串
let arrCut = 'params[' + index + '].cut'  
//用中括号把str括起来即可
this.setData({
[arrCut]: false
})

具体原理还不清楚,需要研究一下,这次就直接给出解决方法

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎