Vue.js vuex操作中具有多个参数的Axios post请求

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) }) }, }

在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)
    })
},
}
组件发送数据的方法:

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没有太多经验,但我很乐意看看