我尝试在我的vuejs组件中创建一个数组elections
作为计算属性,方法是向我的数据存储区的数组elections
添加一些与UI相关的信息。
export default {
computed: {
data() {
var elections = [];
this.$dataStore.state.elections.forEach((el) => {
console.log(this);
var election = { id:el.id, icon: 'assignment', iconClass: 'blue white--text', title: el.title, subtitle: 'Jan 20, 2018' };
this.elections.push(election);
});
return {
elections: this.elections
}
}
}
}
然而,我得到了一个"无法读取属性'推送'未定义""错误。这有什么不对?
答案 0 :(得分:2)
在this.elections
方法返回之前引用data
将无效,因为尚未设置Vue实例的数据属性。
但是您不需要引用this.elections
来表达您想要做的事情。只需引用您在elections
之前初始化的forEach
数组。
此外,您在data
对象中使用了computed
方法,但它应该位于其外部。
此外,正如@Bert在评论中提到的那样,在添加到数组时,您可能需要push
而不是put
。
这是它应该是什么样子:
export default {
data() {
var elections = [];
this.$dataStore.state.elections.forEach((el) => {
var election = { id:el.id, icon: 'assignment', iconClass: 'blue white--text', title: el.title, subtitle: 'Jan 20, 2018' };
elections.push(election);
});
return {
elections: elections
}
}
}