如何用setData修改data中的数组?
下面是正确的方式,我已经解决。
wxml:
<view wx:for="{{reward}}" wx:for-item="i" catchtap="getReward">
<view wx:if="{{i.status==2}}">
<image src="{{i.img}}"></image>
<text>{{i.name}}</text>
</view>
</view>
js:
1、初始的data数据
Page({
data:{
reward:[{
name:"hi",
img:"../../img/success.png",
status:1
},
{
name:"hello",
img:"../../img/success.png",
status:2
}]
}
})
2、修改data中reward的status
①. 用[]表示的变量改变数组里的值
for (let i = 0; i < num; i++) {
var index = "reward[" + i + "].status"; //注意:这里不用写this.data.
this.setData({
[index]: 2 //用[]表示的变量
});
console.log(this.data.reward[i], "reward[" + i + "]");
}
我仍然存在没有解决的问题,希望哪个大神指点一下迷津。。
list: [{
listone: {
imgsrc: "../../assets/images/轮播.jpg",
name: '小A的长长服务名称',
introduce: "服务描述服务描述服务描述服务描述",
price: "0.00"
}
},
{
listone: {
imgsrc: "../../assets/images/轮播.jpg",
name: '小B的长长服务名称',
introduce: "BBB服务描述服务描述服务描述服务描述",
price: "2.00"
}
}
],
//我想在for循环中遍历一下name.length>8以外的用“...”代替,setData中为什么不可以这样写?如下。
this.setData({
"list[${index}].listone.name" : s + '...'; //index是我在上面声明的下角标变量,s是substring(0,8)字符串
})
网友评论