Saya cuba menghantar nilai pilihan saya dalam kaedah FilterStatus menggunakan Vuex tetapi ia tidak menghantar nilai pilihan pilihan kepada kaedah tersebut.
Ini ialah FilterStatus.vue komponen saya, saya menggunakan model v untuk menyimpan nilai pilihan dan menggunakan useStore untuk lulus status
Semua Alive Kematian Tidak diketahui import { useStore } daripada 'vuex' eksport lalai { persediaan() { kedai const = useStore() penapis const = ((status) => { store.dispatch('status penapis', status) }) kembali { penapis } } }
Dalam bahagian ini, saya menggunakan Vuex dan dalam tindakan saya mempunyai kaedah penapisStatus saya
import { createStore } daripada 'vuex' eksport createStore lalai({ nyatakan: { watak: [], charactersFilter: [] }, mutasi: { setCharacters(negeri, muatan) { negeri.karakter = muatan }, setCharactersFilter(negeri, muatan) { state.charactersFilter = muatan } }, tindakan: { async getCharacters( {commit} ) { cuba { const res = tunggu ambil('https://rickandmortyapi.com/api/character') data const = menunggu res.json() commit('setCharacters', data.results) commit('setCharactersFilter', data.results) } tangkap (ralat) { console.log(error) } }, filterStatus({commit, state}, status) { penapis const = state.characters.filter( (character) => { kembalikan character.status.includes(status) }) commit('setCharactersFilter', penapis) } }, modul: { } })
Terima kasih banyak atas bantuan anda
v-model harus diberikan pembolehubah data, bukan fungsi. Dalam Vue 3, anda juga harus mengisytiharkan pembolehubah ini menggunakan
ref
或reactive
untuk menciptakeadaan reaktif, contohnya:Kini, apabila menetapkannya sebagai model v pemilih,
filter
将保存所选选项的值。然后,你需要做的第二件事是使用“on change”事件监听器响应选择的变化,这样每次filter
apabila dikemas kini, anda boleh memasukkannya ke kedai vuex anda.