vue-element-admin /detail/:id 占位符会缓存

czfnxgou  于 2022-10-24  发布在  其他
关注(0)|答案(9)|浏览(182)

例子:没使用 keep-alive

  1. 从 goods 页进入 detail/1 页面会请求 1 的数据;
  2. 返回 goods 页进入 detail/2 页面会请求 2 的数据;
  3. 诡异的情况是 浏览器地址栏 显示的是 detail/1 而不是 detail/2;
  4. 经过测试只会出现在 detail/:id;
  5. 如果使用 detail?id=2 则一切正常

最后期望作者能修复这个问题,以上。

5ssjco0h

5ssjco0h1#

请提供我能在我项目里还原你问题的步骤。

gdrx4gfi

gdrx4gfi2#

  1. 很奇怪,我使用
    this.$router.push({ name: 'Detail', params: { id: 1 } })
    会出现这个问题;
  2. 但是使用
    this.$router.push('/detail/' + 1)
    却一切正常;
liwlm1x9

liwlm1x93#

我也遇到了相同的问题

第一次调用
this.$router.push({ name: 'Detail', params: { id: 1 } })
url 显示 :xxxxxx/detail/1
detail 页面获取数据 this.$router.params.id = 1

第二次调用
this.$router.push({ name: 'Detail', params: { id: 2 } })
url 还是显示 :xxxxxx/detail/1
detail 页面获取数据 this.$router.params.id = 2

这样会导致第二次使用后,刷新页面跳转到了数据1上,求解决

0ve6wy6x

0ve6wy6x4#

所以能提供重现例子么

dohp0rv5

dohp0rv55#

如上描述的,使用以下路由跳转方式
this.$router.push({ name: 'Detail', params: { id: 2 } })
可以进行路由的跳转,但是跳转后的页面url不会改变,只有第一次生效,调试后发现,路由第一次访问后
path被修改了,占位符被替换成了第一次访问的参数。
很奇怪什么地方修改了路由

z9smfwbn

z9smfwbn6#

我似乎找到来了问题原因,在面包屑文件中修改了路由,导致了这个问题
#561

tct7dpnv

tct7dpnv7#

是最新版本么?我还是没能重现。

dldeef67

dldeef678#

我用的是 vue-admin-template 3.8.0

pb3skfrl

pb3skfrl9#

这个问题之前就修复了。

c13b574#diff-cfedb6eb151a24fc555022c9c761ac21

a51d72f#diff-cfedb6eb151a24fc555022c9c761ac21

相关问题