vue页面重新加载功能 - 错误

Posted

技术标签:

【中文标题】vue页面重新加载功能 - 错误【英文标题】:vue page reload function - errpr 【发布时间】:2021-12-26 14:10:55 【问题描述】:

我想构建一个简单的函数,如果 route.name 为 Idx,则将浏览器转发到特定目的地,如果不是,则重新加载页面。我使用以下代码并得到以下错误

我使用 vue 2-x。

代码

reloadPage() 
    if (this.$route.name == "Idx") 
        this.$router.push('/')
        //console.log("test")
     else 
        this.$router.go() // RELOAD THE PAGE TO OVERTAKE THE CHANGES
                

错误

未捕获(承诺)NavigationDuplicated:避免冗余 导航到当前位置:“/idx”。

仅当我在 /idx 站点中运行该函数时才会出现此错误。

我错过了什么?

谢谢!

【问题讨论】:

window.location.reload(); 嘿亚当,谢谢,但如果我用 window.location.reload(); 替换 this.$router.go();该页面根本不会重新加载....当我将 this.$router.go() 放在一个额外的函数中时它可以工作,但这并不好看 【参考方案1】:

如果您的应用程序没有因此错误而中断,我能想到的一种解决方案是处理承诺。

reloadPage() 
if (this.$route.name == "Idx") 
    this.$router.push('/').catch(()=>);
    
 else 
    this.$router.go() // RELOAD THE PAGE TO OVERTAKE THE CHANGES
            

另外,我尝试在 vue3 中运行相同的逻辑并没有遇到此异常,我认为他们摆脱了相同的路线导航。

confirmInput() 
  // do something
  console.log('test', this.$router.currentRoute.value.path);
  if (this.$router.currentRoute.value.path === '/myroute') 
    this.$router.push('/');
   else 
    this.$router.go();
  
,

【讨论】:

谢谢鲁本,第一个答案对我有用,我会记住第二个解决方案,因为我很快就会切换到 vue3。

以上是关于vue页面重新加载功能 - 错误的主要内容,如果未能解决你的问题,请参考以下文章

页面重新加载和直接 url 上的 Vue 渲染错误

Vue页面重新加载刷新数据配置

vue先加载数据再渲染

Vue刷新页面重新加载

Vue刷新页面重新加载

html页面加载JS文件经常错误