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

问题产生:

//  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
    })
  }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容