我不明白 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
}