如何让路由参数与 vue-router 和 vuex 一起工作
How to get route params to work with vue-router and vuex
我正在尝试将数据从一个组件传递到 $route.params.post,但在某处它失败了,我不确定如何让它工作。
在我的组件中,我使用 router-link
转到我的路由文件中的特定路径,但它没有路由到指定的组件。
// Component.vue
<router-link :to="{ path: 'replies', params: { post: postId }}">
<div class="button is-light is-small has-replies" @click=" postId = thread.no ">Replies</div>
//clicking replies will push the thread number to data and load it into the params
</router-link>
export default {
data () {
return {
postId: null
}
}
}
// ./routes/index.js
import Replies from '../components/Replies'
routes: [
{ path: '/', component: Frontpage },
{ path: '/replies/:post', component: Replies }
]
单击该按钮应该会打开回复组件,其路由看起来像 /replies/#
但它只是加载一个空白页面并完全忽略该组件。我在我的 main.js
上导入 vuex-router-sync
,但我不知道这是否是问题所在,但我很清楚这可能是因为我不完全确定我正在使用 vuex-router-sync
正确。
您可以像下面这样尝试,因为 postId
不是 URL 参数,而是 URL 本身的一部分:
<router-link :to="'replies/'+ postId'">
<div class="button is-light is-small has-replies" @click=" postId = thread.no ">Replies</div>
//clicking replies will push the thread number to data and load it into the params
</router-link>
我正在尝试将数据从一个组件传递到 $route.params.post,但在某处它失败了,我不确定如何让它工作。
在我的组件中,我使用 router-link
转到我的路由文件中的特定路径,但它没有路由到指定的组件。
// Component.vue
<router-link :to="{ path: 'replies', params: { post: postId }}">
<div class="button is-light is-small has-replies" @click=" postId = thread.no ">Replies</div>
//clicking replies will push the thread number to data and load it into the params
</router-link>
export default {
data () {
return {
postId: null
}
}
}
// ./routes/index.js
import Replies from '../components/Replies'
routes: [
{ path: '/', component: Frontpage },
{ path: '/replies/:post', component: Replies }
]
单击该按钮应该会打开回复组件,其路由看起来像 /replies/#
但它只是加载一个空白页面并完全忽略该组件。我在我的 main.js
上导入 vuex-router-sync
,但我不知道这是否是问题所在,但我很清楚这可能是因为我不完全确定我正在使用 vuex-router-sync
正确。
您可以像下面这样尝试,因为 postId
不是 URL 参数,而是 URL 本身的一部分:
<router-link :to="'replies/'+ postId'">
<div class="button is-light is-small has-replies" @click=" postId = thread.no ">Replies</div>
//clicking replies will push the thread number to data and load it into the params
</router-link>