将多个参数传递给 Vuex 操作

use*_*932 9 javascript vue.js vuex vuejs2

我的 Vue 组件中有以下方法

loadMaintenances (query = {}) {
  this.getContractorMaintenances(this.urlWithPage, query).then((response) => {
    this.lastPage = response.data.meta.last_page
  })
}
Run Code Online (Sandbox Code Playgroud)

我想将参数传递(this.urlWithPage, query)给我的 Vuex 操作,如下所示:

actions:{
  async getContractorMaintenances ({ commit }, url, query) {
    console.log(url);
    console.log(query);
    let response = await axios.get(url)

    commit('PUSH_CONTRACTOR_MAINTENANCES', response.data.data)

    return response
  },
}
Run Code Online (Sandbox Code Playgroud)

问题是第一个参数url返回一个值,但第二个参数query返回undefined

我的突变如下:

mutations: {
  PUSH_CONTRACTOR_MAINTENANCES (state, data) {
    state.contractor_maintenances.push(...data)
  },
}
Run Code Online (Sandbox Code Playgroud)

如何从第二个参数获取值?

Dan*_*hts 10

对此的公认答案也适用于actions它需要两个参数contextpayload

为了传递多个值,您必须将数据作为对象发送并解构它们:

async getContractorMaintenances ({ commit }, { url, query }) {
Run Code Online (Sandbox Code Playgroud)