美文网首页
微信小程序:如何用setData修改data中的数组?

微信小程序:如何用setData修改data中的数组?

作者: 崔钥钥 | 来源:发表于2019-02-17 21:45 被阅读0次

如何用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)字符串

})

相关文章

网友评论

      本文标题:微信小程序:如何用setData修改data中的数组?

      本文链接:https://www.haomeiwen.com/subject/uzpneqtx.html