我正在尝试通过将更多与UI相关的信息添加到数据存储区的数组elections
中,将数组elections
创建为vuejs组件中的计算属性。
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
}
}
}
}
但是,我收到“无法读取未定义的属性'推'”的错误。这是什么问题?
最佳答案
在返回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
}
}
}