第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Vuex 和 Axios 使用查詢搜索輸入

使用 Vuex 和 Axios 使用查詢搜索輸入

開心每一天1111 2023-03-10 16:06:07
我正在嘗試在輸入查詢的地方進行搜索輸入,該查詢被添加到 API 調用并返回我想要的數(shù)據,這是我的代碼示例      <input    class="rounded-l-full w-full py-6 px-6 text-gray-700 leading-tight focus:outline-none"    id="search"    type="text"    placeholder="Search"    v-bind="query"  />    <button      class="bg-blue-900 text-white rounded-full p-2 hover:bg-blue-700 focus:outline-none w-12 h-12 flex items-center justify-center"      @click="getSearchResults()"    >      <font-awesome-icon :icon="['fas', 'search']" />    </button>我的JS:    <script>import { mapActions, mapGetters, mapState } from "vuex";export default {  name: "Main",  data() {    return {};  },  computed: {    ...mapGetters(["searchResult"]),    ...mapState({      query: (state) => state.query,    }),  },  methods: {    ...mapActions(["getSearchResults"]),  },};</script>我的 vuex 模塊:    import axios from "axios";const state = {  results: [],  query: "",};const getters = {  searchResult: (state) => state.results,};const actions = {  async getSearchResults() {    let query = state.query;    const res = await axios.get(      `https://www.theaudiodb.com/api/v1/json/1/search.php?s=${query}`    );    res.data.artists.forEach((artist) => state.results.push(artist));  },};const mutations = {  returnResults: (state, results) => (state.results = results),};export default {  state,  getters,  actions,  mutations,};搜索查詢沒有通過輸入傳遞,如果我在 Vuex 模塊的查詢中輸入一些內容,我會得到正確的結果,但如果我輸入一些內容并單擊搜索按鈕,我會得到 api JSON 的默認結果,這意味著我的輸入不工作,我會很感激一些幫助,并提前致謝!
查看完整描述

1 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

首先是你錯誤地使用了 v-bind,最好使用 v-model:


<input

    class="rounded-l-full w-full py-6 px-6 text-gray-700 leading-tight focus:outline-none"

    id="search"

    type="text"

    placeholder="Search"

    v-model="query"

  />

當你使用 vuex 時,第二件事是更好地組織你的代碼,我會這樣做:


模板:


// pass the variable query to the funcion getSearchResults

<button

      class="bg-blue-900 text-white rounded-full p-2 hover:bg-blue-700 focus:outline-none w-12 h-12 flex items-center justify-center"

      @click="getSearchResults(query)"

    >

      <font-awesome-icon :icon="['fas', 'search']" />

    </button>

記者:


// Only import mapActions and mapGetters

// create the variable query inside of data() for v-model

<script>

import { mapActions, mapGetters} from "vuex";


export default {

  name: "Main",

  data() {

    return {

         query:"",

      };

  },

  computed: {

    ...mapGetters(["searchResult"]),

   

    }),

  },

  methods: {

    ...mapActions(["getSearchResults"]),

  },

};

</script>

VUEX:


import axios from "axios";


const state = {

  results: [],

};


const getters = {

  searchResult: (state) => state.results,

};


const actions = {

  async getSearchResults({commit}, query) {

    const res = await axios.get(

      `https://www.theaudiodb.com/api/v1/json/1/search.php?s=${query}`

    );

    // Execute the mutation which receive the data and pass to the state

    commit('returnResults', res.data.artists)

  },

};


const mutations = {

  returnResults: (state, results) => (state.results = results),

};


export default {

  state,

  getters,

  actions,

  mutations,

};


查看完整回答
反對 回復 2023-03-10
  • 1 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號