我首先要大量散布商店,因此所有吸气剂,动作和突变均按照以下答案位于单独的文件中:https://stackoverflow.com/a/50306081/5434053
我在服务文件中有API调用,POST api调用似乎可以工作,但GET调用不起作用,该操作似乎没有任何回报。我错过了什么吗?
import Vue from 'vue';
import Vuex from 'vuex';
import actions from './actions';
import getters from './getters';
import mutations from './mutations';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
status: '',
token: localStorage.getItem('token') || '',
user: {},
movie: {},
movies: {}
},
actions,
getters,
mutations,
});
商店/ actions.js
import axios from 'axios'
import {APIService} from '../services/APIService';
const apiService = new APIService();
let getMovies = async ({commit, state, getter}) => {
try {
await apiService.getMovies(localStorage.getItem('token')).then((data, error) => {
for (const movie of data.data.data.movies) {
movie.edit = false;
movie.deleted = false;
}
this.movies = data.data.data.movies;
console.log(data)
commit("fetch_movies", this.movies);
})
} catch(error) {
commit('auth_error')
localStorage.removeItem('token')
console.log(error)
}
}
export default {
getMovies,
};
似乎您正在从actions
导入./actions
。但是,当我在store/actions.js
处查看您的文件时,您没有导出任何内容。
为了使JavaScript模块正常工作,您必须在文件中添加export
语句-这样才能在其他位置导入导出的变量/属性。
也:您似乎只声明了函数getMovies()
而不将其添加到actions
对象(在store.js
中导入)。
尝试一下:
// in store/actions.js
// your code..
const actions = {
getMovies,
}
export default actions;