关于setData传值对象属性名的一个问题
发布于 5 年前 作者 xiuying19 11679 次浏览 来自 问答

众所周知,要改变data里的数值需要用this.setData({name:name,age:age})这个方式进行设定.

这里的第一个name,也就是setData的参数对象的属性名是默认为字符串还是标记符什么的,这个我不是很清楚(太菜了).也就是说,你写了什么就是什么.比如说你这样写:var a=“b”;this.setData({a:1}),最后在data里显示的是a:1而不是b:1.

但是现在因为模版封装的需要,需要上述例子里的同样的写法:var a=“b”,this.setData({a:1}),最后在data里显示为b:1怎么才能做到呢?

看了一点ES6,感觉里面的变量解析赋值,对象拓展,Symbol可能可以实现这一块,但是还是因为太菜.头绪很乱,理不出思路.

所以来发个贴子,希望有人能带带我

2 回复

不,我问的是怎么动态地设置setData的属性名,你写的C不是一个变量,我希望C是从参数的值.像这样:

var hello=‘world’

function(hello){

    this.setData({

        ??:5

    })

}

怎么写才能最后在data里得到{world:5},属性名要是能够根据传入的参数动态改变的.

是用在通用函数里的,所以会有这个要求

var a=“b”

this.setData({c:a})

结果:c=“b”

这个好理解了吧?

回到顶部