Vuejs2 V-FORM from";计算的;不';我没有出现
我在模板中使用v-for来显示计算属性的列表。但是,即使刷新时它也能工作,但当我第一次进入页面时,我看不到列出的项目。如果我为我的联系人设置了v,则无法进行筛选 因此,我的数据和计算方法如下所示:Vuejs2 V-FORM from";计算的;不';我没有出现,vuejs2,computed-properties,v-for,Vuejs2,Computed Properties,V For,我在模板中使用v-for来显示计算属性的列表。但是,即使刷新时它也能工作,但当我第一次进入页面时,我看不到列出的项目。如果我为我的联系人设置了v,则无法进行筛选 因此,我的数据和计算方法如下所示: export default { data() { return { contacts: this.$store.getters.loadedContacts, search: "" }; }, computed: { filte
export default {
data() {
return {
contacts: this.$store.getters.loadedContacts,
search: ""
};
},
computed: {
filterContacts(contacts) {
return this.contacts.filter(contact => {
return contact.name.toLowerCase().match(this.search.toLowerCase());
});
}
};
我在HTML中这样调用它(filterContacts):
{{contact.name}
{{contact.position}}
所以实际的问题是:为什么需要刷新我的页面才能看到for循环的结果?如果我不调用filterContacs,我将无法使用我的筛选器 如何解决过滤和v-for循环问题,有什么建议吗 如果这是一个新手,谢谢你,对不起!
非常感谢任何帮助组件的数据在创建时设置。存储中的getter可能还没有返回任何数据 您可以将计算机中的
this.contacts
安全地替换为this.$store.getters.loadedContacts
您还可以选择使用vuex的mapGetter
helper,这可能更为优雅。它会将vuex getter映射到组件的computed属性(请参阅此处的详细信息:)
使用MapGetter,您将:
...mapGetters({
contacts: 'loadedContacts'
})
然后从数据声明中删除联系人 谢谢!我真的注意到了你说的话。实际上,通过将
this.contacts
替换为this.$store.getters.loadedContacts
解决了我的问题。我还从data()中删除了“联系人”
谢谢 尝试将
this.contacts.filter
替换为this.$store.getters.loadedContacts
。此外,您可以在不同的位置添加虚拟数据以查看其下降的位置。
...mapGetters({
contacts: 'loadedContacts'
})