vue.js - 如何在 vuex 发布请求中从状态传递值
问题描述
我正在使用 get 和 set 为我的表单收集数据。我想将状态发布到 api。我怎样才能移动状态或以某种方式对它们进行分组,以便我可以将它们传递给行动?
state: {
firstname: "",
lastname: "",
},
mutations: {
setFirstName(state, value) {
state.firstname = value
},
setLastName(state, value) {
state.lastname = value
},
所以它看起来像这样:
sendInfo({commit}, object) {
axios.post('API_URL', object)
.then((response) => {
...
})
}
computed: {
firstname: {
get() {
return this.$store.state.firstname
},
set(value) {
this.$store.commit("setFirstName", value)
}
},
还是我错误地接近这个?
解决方案
最好将这些值放在一个状态对象中,例如:
state: {
user: {
firstname: '',
lastname: ''
}
}
您可以在动作中设置对象
actions: {
setData({ commit }, payload) {
commit('SET_DATA', payload);
}
},
mutations: {
SET_DATA(state, payload) {
state.user = payload;
}
}
它在使用时也很简洁mapState
:
computed: {
...mapState(['user'])
}
推荐阅读
- python - 如何从同一id/person的其他行填充大型数据框中的缺失数据?
- c - 使用 mingw 从 Linux 编译 SDL2 windows EXE '应用程序无法正确启动'
- c# - 调整 LCS 算法以获得最小不变的运行长度
- c# - 如何在 C# 和 C++ 之间共享原始数据?
- machine-learning - 如何公平地比较基线和 GridSearchCV 结果?
- java - Java SpringBoot 和 JSON 文件的理解——会付费
- postgresql - PostgreSQL 是否支持仅复制发布列的子集?
- sox - SoX,如何对一个文件应用多个处理?
- javascript - IFRAME 不会按顺序加载所有链接,而只会加载循环中的最后一个
- list - 如何将数据添加到从颤振到火力的列出地图?