Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将多个参数传递给Vuex操作_Javascript_Vue.js_Vuejs2_Vuex - Fatal编程技术网

Javascript 将多个参数传递给Vuex操作

Javascript 将多个参数传递给Vuex操作,javascript,vue.js,vuejs2,vuex,Javascript,Vue.js,Vuejs2,Vuex,我的Vue组件中有以下方法 loadMaintenances (query = {}) { this.getContractorMaintenances(this.urlWithPage, query).then((response) => { this.lastPage = response.data.meta.last_page }) } 我想将参数(this.urlWithPage,query)传递给我的Vuex操作,如下所示: actions:{ async

我的Vue组件中有以下方法

loadMaintenances (query = {}) {
  this.getContractorMaintenances(this.urlWithPage, query).then((response) => {
    this.lastPage = response.data.meta.last_page
  })
}
我想将参数
(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
  },
}
mutations: {
  PUSH_CONTRACTOR_MAINTENANCES (state, data) {
    state.contractor_maintenances.push(...data)
  },
}
问题是第一个参数
url
返回一个值,而第二个参数
query
返回
未定义的

我的基因突变如下:

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
  },
}
mutations: {
  PUSH_CONTRACTOR_MAINTENANCES (state, data) {
    state.contractor_maintenances.push(...data)
  },
}
如何从第二个参数中获取值?

的公认答案也适用于
操作
它需要两个参数
上下文
有效负载

为了传递多个值,您必须将数据作为对象发送并对其进行分解:

async getContractorMaintenances ({ commit }, { url, query }) {

当我执行
异步getContractorMaintensions({commit},{url,query}){console.log(url);console.log(query);
url和查询都返回为未定义。您传递给它的是带有
url
query
属性的对象吗?我如何将它们作为对象传递?我不理解这一部分。我的url
http://127.0.0.1?page=1
和query
{status=new}
必须采用
const payload={url:'http://127.0.0.1?page=1,查询:'status=new'}