如果想设置 this.data.filter.Room
的值, 无法直接通过动态 key
的方式设置
selectedFilterItem(e) {
var dataset = e.currentTarget.dataset
this.setData({
// 直接使用变量的形式是行不通的
filter[dataset.key]: dataset.value
})
// 下面这种方式是 OK 的
this.setData({
'filter.Room': dataset.value
})
}
- 方式一: 简单粗暴不优雅
selectedFilterItem(e) {
var dataset = e.currentTarget.dataset
// 先在这里赋值
this.data.filter[dataset.key] = dataset.value
// 再在此处同步更新
this.setData({
filter: this.data.filter
})
}
- 方式二: 妙哉妙哉~
selectedFilterItem(e) {
var dataset = e.currentTarget.dataset
// 先在这里拼接出一个字符串
var key = 'filter.' + dataset.key
//把对应的成员变量用用方括号[]包裹起来
this.setData({
[key]: dataset.value
})
}
如果数据是数组, 或者要修改数组中对象的某一个 key
该怎么操作呢? 更多精彩玩法, 等你探索~
留下你的想法, 一起探索新世界。。
█▇▆▅▄▃▂▁ Happy New Year ▁▂▃▄▅▆▇█
嘘寒问暖 不如打笔巨款~