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之前,所以拿不到數據,請問如何解決
2 回答

慕尼黑5688855
TA貢獻1848條經驗 獲得超2個贊
computed: {
...mapGetters(["getAllProjs","getProjectNamesById"])
},
watch:{
getAllProjs(newVal,oldVal){ console.log('vuex 中上一次的值',oldVal); console.log('vuex 中更新后的值',newVal); }, getProjectNamesById(newVal,oldVal){ }
}
添加回答
舉報
0/150
提交
取消