【发布时间】:2020-05-28 22:02:04
【问题描述】:
我对前端开发和 Vue js 完全陌生。我想在我的应用程序中加入状态管理。我可以使用来自我的 API 的响应设置状态,但是当我想使用过滤器函数 (getActiveLeagues) 过滤 getter 中的结果时,我收到一个错误“过滤器不是函数”,就好像结果不是数组一样,但我认为我用数组声明了我的状态:
const state = {
leagues: [],
};
const getters = {
getAllLeagues: (state) => state.leagues,
getActiveLeagues: (state) => state.leagues.filter((league) => league.archivated === false),
};
const actions = {
async getAllLeagues({ commit }) {
const response = await axios.get(`${server.baseURL}/api/league`);
console.log(response);
commit('setLeagues', response);
},
};
const mutations = {
setLeagues(state, leagues) {
state.leagues = leagues;
},
};
export default {
state,
getters,
actions,
mutations,
};
我从 API 得到一个数组:
这是我的 Vuex.Store 调用的样子:
import Vue from 'vue';
import Vuex from 'vuex';
import posts from './modules/postModule';
import leagues from './modules/leagueModule';
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
posts,
leagues,
},
});
【问题讨论】:
-
你的
new Vuex.Store构造函数调用是什么样的?您是否将state传递给它? -
编辑:我上传了。我正在传递两个带状态的模块,对吗?
-
如果您尝试调试/记录您的 state.leagues,结果如何?
标签: javascript vue.js