为什么这在地球上不起作用?
selectChanged(val) {
let term_ids = [];
let taxonomy = '';
val.forEach((obj) => {
term_ids.push(obj.term_id);
taxonomy = obj.taxonomy;
});
let obj = this.$route.query;
obj[taxonomy] = term_ids.join(',');
this.$router.push({
query: obj,
});
},
obj看起来像这样:
{education_levels: "33,36", candidate_countries: "304"}
如果我对上述对象进行硬编码,它将按预期工作,则VueJS Router将推送查询字符串,其外观如下:?education_levels=33,36&candidate_countries=304
但是,如果我通过query: obj
,什么都不会发生...
答案 0 :(得分:0)
您需要使用assign
来route
的所有属性。
Object.Assign
对$route
中的进行新的复制,包括所有可枚举的OWN属性
另一个建议-
执行此操作时let obj = this.$route.query;
-
Objects
被存储到memory
,因此,当您尝试复制object
时,实际上是复制存储在内存中的address
的{{1}}。
因此,当您执行此操作时-object
您会意外地更改原始值,因此需要克隆
代替克隆它-
obj[taxonomy] = term_ids.join(',');