vuex.esm.js?edaa:336 [vuex] unknown action type: popup/loading/hideLoading
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利
###我在vuex当中采用了命名空间的形式 并且双向绑定 /store/module/a.js var config = require("…/…/utils/config.js"); var util = require("…/…/utils/index.js");
import axios from 'axios';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.baseURL = config.hostUrl
import qs from 'qs';
export default {
namespaced: true, //命名空间
namespace: 'a/',
state: {
resultVo: null,
stationVo: null,
stationVoSelected: null,
startDate: null
},
mutations: {
setOptions: function(state, params) {
state = Object.assign(state, params); //合并
}
},
actions: {
getOptions({ dispatch, commit, state }) {
var params = {};
params.startDate = util.formatDate(new Date("2017-04-24"), "yyyy-MM-dd");
axios.get("/getOptions.do").then(response => {
params.stationVo = response;
params.stationVoSelected = response[2].value;
dispatch('changeOptions', params);
});
},
changeOptions({ dispatch, commit, state }, params) {
if (params.startDate)
params.startDate = util.formatDate(new Date(params.startDate), "yyyy-MM-dd");
params = Object.assign(state, params); //合并
var queryString = { ddate: params.startDate, stacode: params.stationVoSelected };
var url = "/getResult.do?" + qs.stringify(queryString);
axios.get(url).then((response) => {
params.resultVo = response;
commit('setOptions', params);
});
},
}
}
vue view 里面如下:
import {
mapState,
mapActions
} from 'vuex';
export default {
name: "xx",
created() {
this.getOptions();
},
computed: {
...mapState('a', [ //记住命名空间
'resultVo',
'stationVo'
]),
"startDate": {
set(value) {
if(value)
this.changeOptions({
"startDate": value
})
},
get() {
return this.$store.state.a.startDate;
}
},
'stationVoSelected': {
set(value) {
if(value)
this.changeOptions({
'stationVoSelected': value,
});
},
get() {
return this.$store.state.a.stationVoSelected;
}
},
},
data() {
return {
contenteditable: false,
showEdit: false
};
},
methods: {
...mapActions('a', [ // 找命名空间为test的add方法
'getOptions',
'changeOptions'
]),
}
}
####那么问题来了,我更改了组件里面的条件,内容能渲染,却报[vuex] unknown action type: popup/loading/hideLoading的错,这个有影响吗?要怎么解决,即changeOptions方法执行之后 store里面的值会更新,但是报错。不知道这axios放在这到底合适不合适,奔溃。