Vue.js vuex操作中具有多个参数的Axios post请求
在vuex操作中使用axios获取API数据:Vue.js vuex操作中具有多个参数的Axios post请求,vue.js,axios,vuex,Vue.js,Axios,Vuex,在vuex操作中使用axios获取API数据: actions: { login ({commit}, payload) { axios.post(globalConfig.TOKEN_URL, { payload }) .then((resp) => { commit('auth_success', resp.data) }) .catch((err) => { console.log(err) }) }, }
actions: {
login ({commit}, payload) {
axios.post(globalConfig.TOKEN_URL, {
payload
})
.then((resp) => {
commit('auth_success', resp.data)
})
.catch((err) => {
console.log(err)
})
},
}
组件发送数据的方法:
methods: {
authChatClient () {
let payload = {
name: this.clientFio,
number: this.clientNumber
}
this.$store.dispatch('login', payload)
},
}
然而,它不会工作,因为负载是一个对象,包装在负载对象中。是否可以将多个参数从组件的方法发送到vuex操作
Post请求如下所示:有效负载:{name:aaa,number:111}Vuex只允许对操作使用1个参数。但是,如果我正确理解了您的问题,那么如果将多个参数包装在对象中,则可以将它们发送到vuex操作。例如:
login({commit}, {name, number /*, ...more here*/}) {
axios.post(globalConfig.TOKEN_URL, {
name: name,
number: number,
/* more parameters here */
})
/* ... */
}
您可以通过以下方式进行调用:
methods: {
authChatClient () {
let payload = {
name: this.clientFio,
number: this.clientNumber,
/* more parameters */
}
this.$store.dispatch('login', payload)
},
}
Vuex仅允许在操作中使用1个参数。但是,如果我正确理解了您的问题,那么如果将多个参数包装在对象中,则可以将它们发送到vuex操作。例如:
login({commit}, {name, number /*, ...more here*/}) {
axios.post(globalConfig.TOKEN_URL, {
name: name,
number: number,
/* more parameters here */
})
/* ... */
}
您可以通过以下方式进行调用:
methods: {
authChatClient () {
let payload = {
name: this.clientFio,
number: this.clientNumber,
/* more parameters */
}
this.$store.dispatch('login', payload)
},
}
您是否有Axios返回的错误或其他内容?这与Axios抛出的错误无关,我使用的API旨在接收以下样式的参数:{name:string,phone:string}您是否有Axios返回的错误或其他内容?与Axios抛出的错误无关,我正在使用一个API,该API设计用于接收以下样式的参数:{name:string,phone:string}我已经尝试了所有方法,除了解构参数,谢谢。但为什么vuex操作默认情况下不接受多个参数?我用错了吗?不是Vuex操作默认不接受多个参数,总是这样。问题是,如果使用对象销毁,技术上只传递1个参数,即对象本身,因此Vuex很高兴。至于你的用法,你没有用错,因为我看到很多人都这样使用它,包括我自己。另外,请你解释一下,为什么我在axios的要求中设置了不同的键名,比如:name:name,phone:number,这只是在post请求时忽略了电话号码?你可以显示一下相关的代码吗?我自己对axios没有太多经验,但我很乐意看看,我已经尝试了所有的方法,除了解构参数,谢谢。但为什么vuex操作默认情况下不接受多个参数?我用错了吗?不是Vuex操作默认不接受多个参数,总是这样。问题是,如果使用对象销毁,技术上只传递1个参数,即对象本身,因此Vuex很高兴。至于你的用法,你没有用错,因为我看到很多人都这样使用它,包括我自己。另外,请你解释一下,为什么我在axios的要求中设置了不同的键名,比如:name:name,phone:number,这只是在post请求时忽略了电话号码?你可以显示一下相关的代码吗?我自己对axios没有太多经验,但我很乐意看看