我正在尝试对我的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/