收藏
回答

关于setData传值对象属性名的一个问题

问题模块
API和组件

众所周知,要改变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可能可以实现这一块,但是还是因为太菜.头绪很乱,理不出思路.

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

最后一次编辑于  2017-06-12  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 影楼云选片 2019跨平台在线选片
    影楼云选片 2019跨平台在线选片
    2017-06-12

    var a="b"

    this.setData({c:a})

    结果:c="b"


    这个好理解了吧?

    2017-06-12
    赞同
    回复
  • morganfly
    morganfly
    2017-06-13

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

    var hello='world'

    function(hello){

        this.setData({

            ??:5

        })

    }

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

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

    2017-06-13
    赞同
    回复