0

我不明白 vuex 的每一个行为。

当我从组件调用 searchText 并通过操作设置tableEquipments它工作正常

await searchText(this.searchString).then(res => {
   store.dispatch('main/setTableEquipments', res.data)
});
export async function searchText(SearchString, n = 20){
    return await getApi(process.env.VUE_APP_API_IMPACT_URL + "/v1/equipment/search/text?searchString=" + SearchString  + "&n=" + n);
}

export async function getApi(api){
    const accessToken = await getToken();
    let res = await axios.get(api , { headers: {"Authorization" : `Bearer ${accessToken}`} })
        .catch((error) => {
            console.log(error);
            return(-1);
        })
    return res;
}

但是当我从 vuex 操作中调用它时,searchText返回一个响应,但是 tableEquipments表的值保持未定义

import * as types from './mutation-types'
import {getEquipment, searchText} from "../DAO/EquipmentDAO";


const state = () => {
  return {
    tableEquipments: [],
}}

// getters
const getters = {
  tableEquipments: state => state.tableEquipments,
}

// actions
const actions = {
  setTableEquipments(context, tableEquipments) {
    context.commit(types.SET_TABLE_EQUIPMENTS, { tableEquipments })
  },
   setTabSearchText(context, {searchString}){
    return searchText(searchString).then(res => {
      let tab = res.data;
      context.commit(types.SET_TABLE_EQUIPMENTS, { tab });
    });
  }
}

// mutations
const mutations = {
  [types.SET_TABLE_EQUIPMENTS](state, {tableEquipments}) {
    state.tableEquipments = tableEquipments;
  }
}

export default {
  namespaced: true,
  state,
  getters,
  actions,
  mutations
}
4

0 回答 0