我有一个组件文件,其中使用dispatch
发送ID:
mounted() {
const warehouseId = this.$route.params.id;
this.$store.dispatch("showWarehouse", {warehouseId}).then(() => {
this.warehouseData = this.$store.state.showWarehouses;
});
},
我从路线(id
)获得warehouseId
的元素,接下来我执行动作showWarehouse
。
在store.js(Vuex)文件中,我有一个动作:
showWarehouse({ commit }, payload) {
return new Promise((resolve, reject) => {
axios.get('/api/warehouse/' + payload)
.then(response => {
commit('showWarehouse', response.data);
resolve();
})
.catch(error => {
console.warn(error);
});
});
}
我尝试使用id
从componnt获取payload
,但是这个值可能是undefined
。当我改变时:
axios.get('/api/warehouse/' + payload)
到
axios.get('/api/warehouse/1')
axios
从数据库正确返回数据。
答案 0 :(得分:0)
好,我找到了解决方法
我必须只添加payload.warehouseId
:
axios.get('/api/warehouse/' + payload.warehouseId)
warehouseId
必须与组件中的名称相同:
this.$store.dispatch("showWarehouse", {warehouseId})