小程序data数组对象循环赋值,以及一些坑

小程序data数组对象循环赋值

小程序data数组对象循环赋值

需求是这样的: 再onLoad函数里通过endTime减去现在的时间来计算还有多少天

这是data里的数组对象

listTask: [
            {
                content: "学习前端",
                endTime: "2020-06-01",
                countDown: "",
                color: "green"
            },
            {
                content: "4344",
                endTime: "2020-05-01",
                countDown: "",
                color: "pink"
            },
            {
                content: "33",
                endTime: "2020-04-01",
                countDown: "",
                color: "skyblue"
            }
        ]

大家都是知道要想修改data的值就需要通过this.setData函数来调用修改

一开是我的想法是这样的:

this.data.listTask.forEach((item,index) => {

	this.setData({
           listTask[index].countDown:  endTime
     })
}

显然这样是不行的
小程序data数组对象循环赋值,以及一些坑_第1张图片

通过查找资料我发现了一种解决方法

this.data.listTask.forEach((item,index) => {
 let taskEndTime:string = "listTask["+ index +"].countDown";
            this.setData({
               [taskEndTime] : endTime 
            })
}

完美了解决了问题
在这里插入图片描述

组件传值更新data渲染不出数据

书接上文,用组件传递值给data追加值,发现值渲染不上去

后面发现,即使追加的值,也要listTask: this.data.listTask一下,不然数据渲染不上

你可能感兴趣的:(小程序data数组对象循环赋值,以及一些坑)