Übergeben Sie den ausgewählten Wert: Verwenden Sie die Vuex-Implementierungsmethode in der Methode
<p>Ich habe versucht, meinen Auswahlwert in der FilterStatus-Methode mit Vuex zu übergeben, aber der Wert der Auswahloption wird nicht an die Methode übergeben. </p>
<p>Dies ist meine Komponente FilterStatus.vue. Ich verwende v-model, um den Wert der Option zu speichern, und verwende useStore, um den Status zu übergeben.</p>
<pre class="brush:php;toolbar:false;"><template>
<div class="filter">
<select v-model="filter">
<option value="">Alle</option>
<option value="Alive">Alive</option>
<option value="Tot">Tod</option>
<option value="unknown">Unbekannt</option>
</select>
</div>
</template>
<script>
importiere { useStore } aus 'vuex'
Standard exportieren {
aufstellen() {
const store = useStore()
const filter = ((status) => {
store.dispatch('filterStatus', Status)
})
zurückkehren {
Filter
}
}
}
</script>
<Stil>
</style></pre>
<p>In diesem Teil habe ich Vuex verwendet und in Aktionen habe ich meine filterStatus-Methode</p>
<pre class="brush:php;toolbar:false;">import { createStore } from 'vuex'
Exportieren Sie den Standard-CreateStore({
Zustand: {
Figuren: [],
ZeichenFilter: []
},
Mutationen: {
setCharacters(state, payload) {
state.characters = Nutzlast
},
setCharactersFilter(state, payload) {
state.charactersFilter = Nutzlast
}
},
Aktionen: {
asynchrone getCharacters( {commit} ) {
versuchen {
const res = waiting fetch('https://rickandmortyapi.com/api/character')
const data = warte auf res.json()
commit('setCharacters', data.results)
commit('setCharactersFilter', data.results)
} Catch (Fehler) {
console.log(Fehler)
}
},
filterStatus({commit, state}, status) {
const filter = state.characters.filter( (character) => {
return charakter.status.includes(status)
})
commit('setCharactersFilter', filter)
}
},
Module: {
}
})</pre>
<p>Vielen Dank für Ihre Hilfe</p>