0

我正在尝试为我的应用创建可共享的 URI,我正在使用 vue router 3。

问题是当我使用类似的路线访问我的应用程序时

localhost:8000/foo?param1=yeaa&param2=yeaa2

此 URI 被 vue 路由器捕获但转换为

localhost:8000/logs?param1=yeaa&amp%3Bparam2=yeaa2

然后当我尝试使用访问查询参数时

router.query.param1 // it works
router.query.param2 // it fail and return undefined

事实上,当我在 Vue devtools 里面查看时,可以看到 vue router 认为第二个参数是amp;param2

$route
  path:"/logs"
  query:Object
    amp;param2:"yeaa2"
    param1:"yeaa"
  params:Object (empty)
  fullPath:"/logs?param1=yeaa&amp%3Bparam2=yeaa2"
  meta:Object (empty)

这有点无聊,如果有选项/配置可以避免这种情况,我没有成功在 vue 路由器文档上找到。

仅供参考,当我使用相同的参数访问相同的 URI 时,router-link这个问题就消失了。

有没有办法避免这种字符转义,在 vue 路由器配置中(可能在文档中没有充分了解)或使用 vanilla JS?

如果不是,我认为这是一个 vue 路由器问题。

编辑

我在那里创建路线

{
component: Log,
path: '/logs',
props: route => ({
  oldQueryOptions: {
    absoluteTimeRangeFrom: route.query.absoluteTimeRangeFrom,
    absoluteTimeRangeTo: route.query.absoluteTimeRangeTo,
    query: route.query.query,
    rangeKeyword: route.query.rangeKeyword,
    relativeTimeRange: route.query.relativeTimeRange,
    type: route.query.type,
  },
}),
},
4

0 回答 0