问题:初始化一个日期对象,不能直接在data里 new Date();
打印出来date对象是个空{}
嵌套对象只赋值其中一个字段
错误写法:
像下面的写法会把其他字段值丢失。 NOT oK。
Page({
data: {
planList: [{event: "work"}],
// dat: new Date(),
dat: "",
todolist: {
isFinish: false,
startAt: "None",
typeIndex: 34
}
},
onLoad: function (options) {
let sa = 'todolist.startAt'
let _data = this.data;
console.log(_data.todolist.startAt)
this.setData({
todolist: {
startAt: new Date()
}
});
console.log(_data.todolist.startAt)
}
});
正确写法:
需要把嵌套层级通过string : xxx.xxxx.xxx 的方法用字符串方式来改值
Page({
data: {
planList: [{event: "work"}],
// dat: new Date(),
dat: "",
todolist: {
isFinish: false,
startAt: "None",
typeIndex: 34
}
},
onLoad: function (options) {
let sa = 'todolist.startAt'
let _data = this.data;
console.log(_data.todolist.startAt)
this.setData({
[sa]: new Date()
});
console.log(_data.todolist.startAt)
}
});
也可以简写:
this.setData({
'todolist.startAt': new Date()
});
其他方法:使用wx-updata库