⼩程序datakey的名称是变量时候[key]以下省略了js中page({data:{属性省略了}})的数据。
1,当页⾯绑定值是根据变量值确定时候,如何更新数据:
<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 //得到字符串'weight'
this.setData({
key: e.detail
})
}
如果想给weight 赋值
这种写法是只会给属性名为key的赋值
需要改写:通过增加中阔号的⽅法,[key]
changeField(e){
let key = e.currentTarget.dataset.key
this.setData({
[key]: e.detail
})
}
理解成data[key]的缩写,[key]其中key是data对象的⼀个属性
实际是:es6新特性
var data = {}
data[key] = value // key 可以是任何字符串
this.setData(data)
上⾯缩写,es6特性:
this.setData({
[key]: value
})
es6字符串转数组key的值是⼀个字符串,也就是对象中的属性名称
1,setData()表⽰给data对象的属性赋值
2, [key]: value表⽰:
[key]表⽰:对象中有个占位符key,key的值是对象属性
与js解构对象赋值区分:解构左右两边都是对象或者数组
新特性:
ES6 允许声明在对象字⾯量时使⽤简写语法,
来初始化属性变量和函数的定义⽅法,
并且允许在对象属性中进⾏计算操作:
补充:类似中括号中不⽤数字⽤字符串 <;表⽰:从对象中选择属性(字符串是属性名称)>
2,给数组某个元素赋值:
data: {
types: ["default", "default", "default"],
}
。。。
var i=e.currentTarget.dataset.id
var type="types["+i+"]"
this.setData({
[type]: pes[i]=="default"? "primary" : "default"
})
3,还有如下写法:
const {
field
} = e.currentTarget.dataset
this.setData({
[`formData.${field}`]: e.detail.value
})
在单引号中模板字符串拼接:${filed}获取filed值,然后formData. 拼接
formData⼜是data的⼀个属性,${field}是formData的⼀个属性,
补充:
标题发布状态评论数阅读数操作操作
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论