vuex - 将数据从组件发送到 Vuex
问题描述
我有一个组件文件,我在其中发送 id 使用dispatch
:
mounted() {
const warehouseId = this.$route.params.id;
this.$store.dispatch("showWarehouse", {warehouseId}).then(() => {
this.warehouseData = this.$store.state.showWarehouses;
});
},
我id
从 route () 中获取元素warehouseId
,接下来我运行 action 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
使用 来自组件payload
,但可能这个值是undefined
. 当我改变时:
axios.get('/api/warehouse/' + payload)
至
axios.get('/api/warehouse/1')
axios
从数据库中正确返回数据。
解决方案
好的,我找到了解决方案
我必须添加payload.warehouseId
:
axios.get('/api/warehouse/' + payload.warehouseId)
warehouseId
必须与组件的名称相同:
this.$store.dispatch("showWarehouse", {warehouseId})
推荐阅读
- swift - 如何将稍有错误的 RFC822 字符串转换为日期?
- html - 电子邮件开发页脚表小于正文表
- javafx - 右键单击 CodeArea 获取字符索引
- asynchronous - 当我尝试同时管理 Cisco 设备时,Asyncio 无法按预期工作
- c++ - 使用一个参数的模板函数时出错(与 2 一起使用)
- python - 图像多分类模型拟合期间遇到错误:语法错误:位置参数跟随关键字参数
- html - 如何阻止样式更改应用于具有递归组件的所有内容?
- linux - nginx启动创建孤儿进程
- cypress - 检查 cypress 中的动态元素
- blockchain - 无法使用 tessera 与仲裁节点发送交易