Vue URL正在更新,但组件未更新

rekjcdws  于 2023-10-23  发布在  Vue.js
关注(0)|答案(3)|浏览(206)

有一个问题,我的网址更新,但页面没有。
在主页中,我显示projects的列表。点击一个项目将带你到"website.com/project/project-1",一切都按预期工作。
但是,在该页面的底部,我再次显示了一个列表。此列表与主页相同,功能相同。但问题是,它会将URL更新为"website.com/project/project-2",但页面不会重新呈现或更改。
我的代码的一个例子我的当前路由器路径的组件。

path: '/project/:project_slug',
name: 'ProjectPage',
component: ProjectPage

从项目页面到新项目页面的My Router链接

<router-link :to="{ name: 'ProjectPage', params: {project_slug: projectHighlightSlug} }">
   <h4 class="header-17 semibold">{{projectTitle}}</h4>
</router-link>

更新
这是我当前的方法/观察部分

methods: {
  goToProject() {
    this.$router.push({
     name: 'ProjectPage', 
     params: {project_slug: this.projectHighlightSlug}
  })
 },
},
watch:{
// eslint-disable-next-line no-unused-vars
'$route'(to, from) {
  this.goToProject();
  }
}

然而,to,from是“已定义但从未使用”的,单击我的按钮调用goToProject()会给我错误;“在具有表达式“$route”的观察程序中,可能存在无限更新循环”

ve7v8dk2

ve7v8dk21#

正如Vue Router文档中所解释的,当用户导航到的url使用相同的组件时,它使用该组件的相同示例。因此,文档建议监听$route更改或使用beforeRouteUpdate导航保护。

v1uwarro

v1uwarro2#

您需要查看路由来更新您的页面。见下面的代码

watch:{
     '$route' (to, from) {
         this.goToProject()
         // call your method here that updates your page
      }
},

源动态路由匹配

zfciruhq

zfciruhq3#

你可以尝试添加一个关键字到你的路由器视图,一旦url路径改变,该组件将刷新。

<router-view :key="$route.fullPath">

相关问题