一个关于vuex state中的数据存取问题?

vuex的结构是这样的

export default new Vuex.Store({    state:{
        projects:[],
    },
    getters:{
        getAllProjs(state){
            return state.projects;
        },
        getProjectNamesById(state){
            return state.projects.map( proj => proj.name )
        }
    },
    mutations:{
        pushProjectsToStore(state,data){            state.projects = data;
        },
    },
    actions:{
        pushProjectsToStore(){
            
        }
    }
})

父组件创建时

beforeCreate(){      this.$queryProject().then( res => this.$store.commit('pushProjectsToStore',res.data) )
  },

子组件实例化时

mounted () {    //   获取项目信息
      this.projects = this.$store.getters.getAllProjs;      this.projectNamesById = this.$store.getters.getProjectNamesById;
  },

然后现在有个问题,getAllProjs执行时机是在pushProjectsToStore之前,所以拿不到数据,请问如何解决


小唯快跑啊
浏览 1324回答 2
2回答

ABOUTYOU

computed: {...mapGetters(["getAllProjs","getProjectNamesById"])},watch:{getAllProjs(newVal,oldVal){     console.log('vuex 中上一次的值',oldVal);     console.log('vuex 中更新后的值',newVal); }, getProjectNamesById(newVal,oldVal){ }}
打开App,查看更多内容
随时随地看视频慕课网APP