【问题标题】:how to pass parameters along with rest operator in javascript?如何在javascript中与rest运算符一起传递参数?
【发布时间】:2020-09-23 12:30:46
【问题描述】:

以下是我的函数调用:

await this.faqs({'fields.page': page, ...filters});

功能是:

async faqs({state, commit}, filters) {

const {items} = await fetchData({content_type: state.contentType, ...filters});

const faqs = items.map((item) => {
  return {
    id: item.systemId,
    ...item.fields,
  };
});

commit('setFaqs', faqs);

return faqs;}

我想与这个休息运算符一起传递另外两个参数。我该怎么做?

【问题讨论】:

  • 我不认为你的代码 sn-ps 做你认为他们做的事情。
  • 如果函数是async faqs({ state, commit }, filters) { ... }则没有rest参数; filters 似乎是一个数组?所以调用看起来像this.faqs({ state: ..., commit: ... }, [ ... ]),其中[...] 是您可以通过的过滤器数组。不看更多代码就很难分辨。
  • @Thankyou,我已经更新了问题。

标签: javascript vue.js ecmascript-6


【解决方案1】:

创建一个对象并让它有 2 个命名键,然后它们使用扩展运算符进行过滤,如下所示:

await this.faqs({'fields.page': page, param1: 'someparam1', param2: 'someparam2', ...filters });

【讨论】:

  • {a: 1, {b: 2, c: 3}} 语法无效。
  • @Olian04 去掉了括号,希望没问题
  • @AlexanderSolonik,我如何在函数中访问它?
  • @Trupti async faqs({state, commit}, param1, param2, filters) 这样,试试看告诉我
  • @AlexanderSolonik,在 console.log(param1);... 输出为 {'fields.page': page, param1: 'someparam1', param2: 'someparam2'} ...和 console.log(filters) 未定义
猜你喜欢
  • 1970-01-01
  • 2019-12-28
  • 2012-10-14
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多