我正在尝试对我的vue组件中的api调用使用对象解构而不是默认参数。有人可以告诉我为什么这行不通吗?它们都是我组件中的方法,大写锁定变量在组件外部设置,而这些是从数据中拉出的。

buildUrl() {
  const options = {
    parm1: PARM_1,
    parm2: PARM_2,
    parm3: this.parm3,
    parm4: this.parm4
  };
  const { parm1, parm2, parm3, parm4 } = options;
  return `things?parm1=${parm1}&parm2=${parm2}&parm3=${parm3}&parm4=${parm4}`;
}

async foo() {
  const { parm1, items: things } = await this.$axios.$get(
    this.buildUrl({ parm1: this.parm1 + 1 })
  );
  this.parm1 = parm1;
  this.things.push(...things);
},

最佳答案

您似乎不接受buildUrl函数中的任何参数。但是在foo中,您要将对象传递给buildUrl

附带一提,要处理大量url查询参数,如果浏览器支持允许,则使用新的 Shiny URLSearchParams API会更容易(这意味着:没有IE)。

因此,将代码更改为:

buildUrl({
  parm1 = PARM_1,
  parm2 = PARM_2,
  parm3 = this.parm3,
  parm4 = this.parm4
}) {
  const params = new URLSearchParams({ parm1, parm2, parm3, parm4 });
  return `things${params}`;
}

关于javascript - 在我的api调用中使用对象分解而不是默认参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60705325/

10-14 03:12