有一个问题,我的网址更新,但页面没有。
在主页中,我显示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”的观察程序中,可能存在无限更新循环”
3条答案
按热度按时间ve7v8dk21#
正如Vue Router文档中所解释的,当用户导航到的url使用相同的组件时,它使用该组件的相同示例。因此,文档建议监听$route更改或使用
beforeRouteUpdate
导航保护。v1uwarro2#
您需要查看路由来更新您的页面。见下面的代码
源动态路由匹配
zfciruhq3#
你可以尝试添加一个关键字到你的路由器视图,一旦url路径改变,该组件将刷新。