store/module/work.js
import * as types from '../mutation-types'
import * as api from '@/api/work.js';
const state = {
flowTypeListData:[],
}
const getters = {
flowFormData: state => state.flowFormData,
}
const actions = {
//分类列表
getFlowTypeList({ commit }) {
api.getFlowTypeList().then(response => {
commit(types.FLOW_TYPE_LIST, response.data)
})
},
//新增分类
addFlowType({ commit }, data) {
api.addFlowType(data).then(response => {
commit(types.ADD_FLOW_TYPE, response.data)
})
}
}
const mutations = {
[types.FLOW_TYPE_LIST](state, data) {
state.flowTypeListData = data;
},
[types.ADD_FLOW_TYPE](state, data) {
if(data == 1){
console.log("创建成功");
}else{
console.log("创建失败");
}
},
}
export default {
state,
getters,
actions,
mutations
}
views/type.vue
import { mapActions, mapGetters } from "vuex";
export default {
data() {
return {
formData: {},
}
},
created() {
this.$store.dispatch("getFlowTypeList");
},
computed: {
...mapGetters({
data: "flowTypeListData",
})
},
mounted() {},
methods: {
save(){
//提交创建的分类数据
this.$store.dispatch("addFlowType",this.formData);
//更新分类列表 ###问题:界面数据没有实时更新,刷新界面数据才在界面上出来
this.$store.dispatch("getFlowTypeList");
}
},
components: { }
};
以上代码都可以正常运行,只是有更新延迟问题;
问题:界面数据没有实时更新,刷新界面数据才在界面上出来,我试了好久,然后发现如果在 this.$store.dispatch("getFlowTypeList"); 包裹一个setTimeout 就可以实时更新界面数据,以前不用VUEX的时候没有发现这种问题,大家遇到这种问题吗,如何解决的?
只有加loading了