【发布时间】:2021-10-19 12:10:59
【问题描述】:
我在 vue 中使用 replace 将 query 添加到当前 url 。
如果值不存在,我分配了undefined。
this.$router.replace({
name: "admin-frs",
query: {
limit: this.pageSize,
page: this.currentPage,
sort: this.sortbyapi || undefined,
language: this.sortbyapiLang || undefined,
},
})
当查询数据更新时,这会使查询项从 URL 中消失,这很好。
它不会从查询对象中删除它。
知道是否有比这更好的方法吗?
另外,是否可以从路由中获取查询?喜欢&limit=10...etc
【问题讨论】:
-
我不确定您在这里寻找什么。像这样的东西?
/admin-frs?limit=3&page=1&sort=asc&language=fr从查询对象中去掉什么,又是什么意思? -
您能否澄清一下:“...并且我分配了 undefined”,如果该值不存在。未定义分配给什么?什么价值不存在?然后“......它没有从查询对象中删除它”什么没有删除什么?
-
@kissu 可以说如果
this.sortbyapi为空,则query对象中的sort应该从url 和对象中消失 -
我遇到了你的“问题”。让我试试看能不能找到一个漂亮的解决方案。
-
哦,所以问题更多是关于如果值是虚假的,如何删除对象中的键值对。因此,使用 lodash 的
pickBy之类的东西:lodash.com/docs/4.17.15#pickBy 或者像给定答案那样手工制作。路由器在故事中毫无用处。
标签: javascript vue.js vuejs2 nuxt.js vue-router