Vue路由器:在router.push()中动态设置查询键

时间:2020-04-07 10:29:35

标签: vue.js

我是Vue的新手,我创建了一个项目,该项目基于当前URL执行GET请求。

我有一个函数,希望将filterType的动态值设置为router.push()中的查询键。

我现在拥有的函数只是将filterType作为字符串推送。香港专业教育学院一直在研究中,尚未找到有关此问题的任何答案。感谢您的任何投入或智慧。

setFilter(filterType, filterValue){
    if(filterValue){
        this.$router.push({ query: Object.assign({}, this.$route.query, { filterType: filterValue })}).catch(err =>{});
    }
    else {
        let query = Object.assign({}, this.$route.query);
        delete query.filterType;
        this.$router.replace({ query }).catch(err =>{});
    }
},

2 个答案:

答案 0 :(得分:0)

将其分配为查询对象的键:

if(filterValue){
  const query = this.$route.query
  query[filterType] = filterValue
  this.$router.push({path:'/', query:query})
}

答案 1 :(得分:0)

尝试此代码

let newQuery = {filterType: filterValue};
this.$router.push({name: 'route-name', query: {...this.$route.query, ...newQuery}})