国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

傳遞選擇的值:使用vuex在方法中的實(shí)現(xiàn)方法
P粉218775965
P粉218775965 2023-08-20 22:01:35
0
2
711
<p>我嘗試在使用Vuex的FilterStatus方法中傳遞我的選擇值,但它沒(méi)有將選擇選項(xiàng)的值傳遞給該方法。</p> <p>這是我的組件FilterStatus.vue,我使用v-model保存選項(xiàng)的值,并使用useStore傳遞狀態(tài)</p> <pre class="brush:php;toolbar:false;"><template> <div class="filter"> <select v-model="filter"> <option value="">全部</option> <option value="Alive">存活</option> <option value="Dead">死亡</option> <option value="unknown">未知</option> </select> </div> </template> <script> import { useStore } from 'vuex' export default { setup() { const store = useStore() const filter = ((status) => { store.dispatch('filterStatus', status) }) return { filter } } } </script> <style> </style></pre> <p>在這部分中,我使用了Vuex,在actions中有我的filterStatus方法</p> <pre class="brush:php;toolbar:false;">import { createStore } from 'vuex' export default createStore({ state: { characters: [], charactersFilter: [] }, mutations: { setCharacters(state, payload) { state.characters = payload }, setCharactersFilter(state, payload) { state.charactersFilter = payload } }, actions: { async getCharacters( {commit} ) { try { const res = await fetch('https://rickandmortyapi.com/api/character') const data = await res.json() commit('setCharacters', data.results) commit('setCharactersFilter', data.results) } catch (error) { console.log(error) } }, filterStatus( {commit, state}, status ) { const filter = state.characters.filter( (character) => { return character.status.includes(status) }) commit('setCharactersFilter', filter) } }, modules: { } })</pre> <p>非常感謝您的幫助</p>
P粉218775965
P粉218775965

全部回復(fù)(1)
P粉512363233

v-model應(yīng)該給定一個(gè)數(shù)據(jù)變量,而不是一個(gè)函數(shù)。在Vue 3中,你還應(yīng)該使用refreactive來(lái)聲明這個(gè)變量,以創(chuàng)建響應(yīng)式狀態(tài),例如:

const filter = ref('')

現(xiàn)在,當(dāng)將其設(shè)置為選擇器的v-model時(shí),filter將保存所選選項(xiàng)的值。然后,你需要做的第二件事是使用“on change”事件監(jiān)聽(tīng)器響應(yīng)選擇的變化,這樣每次filter更新時(shí),你都可以將其提交到你的vuex存儲(chǔ)中。

<template>
  <div class="filter">
    <select v-model="filter" @change="filterChange">
      <option value="">全部</option>
      <option value="Alive">存活</option>
      <option value="Dead">死亡</option>
      <option value="unknown">未知</option>
    </select>
  </div>
</template>
<script>
import { ref } from "vue";
export default {
  setup() {
    const filter = ref("");
    const filterChange = (e) => {
      console.log("filter", filter.value);
      // 可選:從實(shí)際事件中獲取值,而不是使用v-model
      console.log("來(lái)自事件的filter", e.target.value); 
    };

    return {
      filter,
      filterChange,
    };
  },
};
</script>
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板