如何让微信小程序setData中的key值使用变量?

2018-12-17  本文已影响26人  Amy24

问题产生:

//  wxml
 <van-field value="{{ age }}" clearable label="年龄(岁)" placeholder="请输入年龄" 
type="number" bind:change="changeField" data-key="age"/>
  <van-field value="{{ height }}" clearable label="身高(cm)" placeholder="请输入身高" 
type="number" bind:change="changeField" data-key="height"/>
  <van-field value="{{ weight }}" clearable label="体重(kg)" placeholder="请输入体重" 
type="number" bind:change="changeField" data-key="weight"/>

// js
 changeField(e){
    let key = e.currentTarget.dataset.key
    this.setData({
      key: e.detail
    })
  }

属性作为变量传入,因为无论属性加不加引号,都会被当成字符串对待,这样只是在data里面多了一条'key'的数据

解决:

es6对象属性加强

changeField(e){
    let key = e.currentTarget.dataset.key
    this.setData({
      [key]: e.detail
    })
  }
上一篇 下一篇

猜你喜欢

热点阅读