import { createStore } from "vuex";
import axios from 'axios'
const CinemaModule = createStore({
namespaced: true , //开启命名空间
state() {
return {
CinemaList: [],
}
},
mutations: {
changeCinemaList(state, payload) {
state.CinemaList = payload
},
},
// 可同步,异步
actions: {
// 获取影院数据
async getCinemaList(store) {
const res = await axios({
url: 'https://m.maizuo.com/gateway?cityId=110100&ticketFlag=1&k=4409718',
// method: get
headers: {
'X-Client-Info': '{"a":"3000","ch":"1002","v":"5.2.1","e":"16842900295120502959964161","bc":"110100"}',
'X-Host': 'mall.film-ticket.cinema.list',
}
})
store.commit('changeCinemaList',res.data.data.cinemas)
},
},
getters:{
filterCinamaList(state){
return (type)=>{
return state.CinemaList.filter(item=>item.eTicketFlag==type)
}
}
}
})
export default CinemaModule
import { createStore } from "vuex";
import CinemaModule from "./Module/CinemaModule";
import NowModule from "./Module/NowModule";
import TabbarModule from "./Module/TabbarModule";
const store = createStore({
modules:{
CinemaModule,
NowModule,
TabbarModule
}
})
export default store
简化过程:演示其中一个模块,并将其引入父模块中。 后面在App中的通过命名空间的使用过程也没错..
错误的地方:每个模块都加了createStore,导致无法正常引入
子模块的定义跟根模块是类似的,再次提醒export default不要加new
关于我的错误是在这里看到的