J'ai essayé de transmettre ma valeur de sélection dans la méthode FilterStatus à l'aide de Vuex, mais la valeur de l'option de sélection n'est pas transmise à la méthode.
Voici mon composant FilterStatus.vue, j'utilise v-model pour enregistrer la valeur de l'option et j'utilise useStore pour transmettre le statut
Dans cette partie, j'ai utilisé Vuex et dans les actions j'ai ma méthode filterStatus
importer { createStore } depuis 'vuex' exporter le createStore par défaut ({ État: { personnages: [], caractèresFiltre : [] }, mutation : { setCharacters (état, charge utile) { state.characters = charge utile }, setCharactersFilter (état, charge utile) { state.charactersFilter = charge utile } }, Actions: { async getCharacters( {commit} ) { essayer { const res = attendre fetch('https://rickandmortyapi.com/api/character') const data = attendre res.json() commit('setCharacters', data.results) commit('setCharactersFilter', data.results) } attraper (erreur) { console.log (erreur) } }, filterStatus({commit, état}, statut) { const filter = state.characters.filter( (caractère) => { retourner caractère.status.includes(statut) }) commit('setCharactersFilter', filtre) } }, modules: { } })Merci beaucoup pour votre aide
v-model doit recevoir une variable de données, pas une fonction. Dans Vue 3, vous devez également déclarer cette variable en utilisant
ref
或reactive
pour créer unétat réactif, par exemple :Maintenant, lorsque vous le définissez comme v-model du sélecteur,
filter
将保存所选选项的值。然后,你需要做的第二件事是使用“on change”事件监听器响应选择的变化,这样每次filter
une fois mis à jour, vous pouvez le valider dans votre boutique vuex.