【发布时间】:2019-05-25 01:57:07
【问题描述】:
我的组件中有一个名为config 的对象数组和一个currentIdx 属性。然后我发现自己需要这样做:
computed: {
textStyle: function() {
return this.config[this.currentIdx].textStyle;
},
text: function() {
return this.config[this.currentIdx].text;
},
key: function() {
return this.config[this.currentIdx].key;
}
}
我尝试将所有功能替换为:
computed: {
...this.config[this.currentIdx]
}
它通过了编译,但在浏览器控制台中出现错误。我认为问题在于computed 需要函数,但扩展语法 (...) 返回对象。所以,我的问题是:在这种情况下有什么方法可以减少重复吗?
谢谢!
【问题讨论】:
-
您可以创建一个包装助手,它将接收一个对象,并返回一个新对象,该对象具有映射到返回该键值的函数的相同键名,尽管我不确定这将如何玩弄计算的性质。
-
计算的属性定义无法识别您的组件实例,因为它们是在编译时创建的。
标签: javascript vue.js ecmascript-6 vue-cli spread-syntax