【发布时间】:2021-11-28 15:17:03
【问题描述】:
我正在开发一个 vueJs 应用程序,其中我有一个上传者列表和一个搜索栏,但是在添加 vuex 之后,该列表不再呈现。按照this问题的指示,我写了:
<template>
<div class="consumer container-fluid">
<input
class="form-control container mb-3"
placeholder="Enter an uploader"
v-model="searchedUploader"
/>
<ul
class="list-group"
v-for="uploader in filtered"
v-bind:key="uploader.username"
>
<li class="list-group-item list-group-item-action">
<p>
{{ uploader.nome }}
</p>
</li>
</ul>
</div>
</template>
<script>
import { mapGetters, mapActions } from "vuex";
export default {
name: "Home",
data() {
return {
searchedUploader: "",
};
},
computed: {
...mapGetters(["consumerUploaders","filteredUploaders"]),
filtered() {
return this.filteredUploaders(this.searchedUploader);
},
},
methods: mapActions(["fetchUploaders"]),
created() {
this.fetchUploaders();
},
};
</script>
而我的consumer.js 是:
const state = {
uploaders: [],
};
const getters = {
consumerUploaders: (state) => state.uploaders,
filteredUploaders: (state) => (target) => {state.uploaders.filter(uploader =>
uploader.nome.toLowerCase().startsWith(target.toLowerCase()))}
};
但不工作。如果我将v-for="uploader in filtered" 替换为 v-for="uploader in consumerUploaders",则会显示列表,但搜索栏当然不会对其进行过滤。任何想法?谢谢!
【问题讨论】:
标签: vue.js filter vuex searchbar