我正在做一個學校專案,目前我只是在嘗試 Vuex,我想從 Vuex 檢索研討會串列,但我似乎無法更新我的狀態。
這是我的節點后端:
router.get('/all', (req, res) => {
Workshop.find({})
.then( workshop => {
return res.status(201).json({
workshop: workshop,
success: true
})
})
.catch( err => {
console.log(err)
})
})
這是我在 Postman 中的結果:

這是我的 Vuex 商店:
import axios from 'axios'
const state = {
workshop: {}
}
const getters = {
workshop: state => state.workshop
}
const actions = {
async getWorkshop({ commit }) {
let res = await axios.get('http://localhost:5000/api/workshops/all');
commit('workshop_success', res.data.workshop);
return res.data.workshop;
}
};
const mutations = {
workshop_success(state, workshop) {
state.workshop = workshop
}
};
export default {
state,
getters,
actions,
mutations
}
這是我的組件:
<template>
<p>{{ workshop }}</p>
</template>
<script>
import { mapGetters, mapActions } from 'vuex'
export default {
computed: {
...mapGetters(['workshop'])
},
methods: {
...mapActions(['getWorkshop'])
},
created() {
this.getWorkshop
},
}
</script>
問題是,我可以通過 Vuex 獲取車間狀態,它顯示一個簡單的空物件“{}”(這是初始狀態),但似乎我無法通過 created 鉤子觸發操作,并且狀態不會改變。如果有人知道我做錯了什么,那將非常有幫助,因為我現在真的很迷茫。先感謝您!
uj5u.com熱心網友回復:
state不是狀態而是突變中的背景關系物件等引數。否則commit無法訪問等。
它是:
workshop_success({ state }, workshop) {
state.workshop = workshop
}
這也是空操作:
created() {
this.getWorkshop
},
一個函式應該像this.getWorkshop().
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/378489.html
