VueJs/Nuxt筛选数组,error _vm.filtered.不是函数



我是Vue/Nuxt的新手,尝试过滤数组。

computed: mapState({
entries: state => state.archives.archives
}),
filteredArchive, function (objects, key) {
if (objects) {
return objects.filter(function(object) {
return object.tag === key
})
}

我想得到一个循环的结果:

<li v-for="(entry, index) in (entries | filteredArchive('test'))">{{ entry.title }}</li>

此操作失败。。我的方法出了什么问题。。

谢谢你的帮助。

我建议为"filteredArchive"创建一个计算属性,而不是过滤器。事实上,我相信Vue 3中的滤镜正在消失。如果需要在组件之间共享逻辑,可以将其放在一个mixin中。

好的。这是我目前的解决方案:

<ul>
<li v-for="(entry, index) in filteredByTag(entries, 'test')">
<nuxt-link :to="'archive/' + entry.id">{{ entry.title }}</nuxt-link>
</li>
</ul>
computed: mapState({
entries: state => state.archives.archives,
}),
methods: {
filteredByTag(entries, tag){
return entries.filter((entry) => {
return entry.tag.match(tag)
})
}
},

最新更新