挖坑指南: 微信小程序this.setData({ })的骚操作

如果想设置 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 ▁▂▃▄▅▆▇█

嘘寒问暖 不如打笔巨款~

你可能感兴趣的:(微信小程序,挖坑指南)