@wazowskiMarik

Как передать props во Vue Router от родителя к ребенку?

Есть компонент родитель PostItem
код PostItem.vue

<template>
	<div class="post" 
	>
			<div class="post-id" 
			>{{post.id}}</div>
			<div class="post-title" 
			>{{post.title}}</div>
			<div class="post-body" 
			>{{post.body}}</div>
			<div class="post_btns">
				
				<router-link 
				:to="{name: 'PostIdPage', params: {id: post.id, post: post.body}}">Press</router-link>
				<MyButton @click="deletePost">Delete</MyButton>
			</div>
			<hr>
	</div>
</template>

<script>
	export default {
			props: {
				post: {
					type: Object,
					required: true
				}
			},
			methods:{
				deletePost(){
					this.$emit('delete', this.post)
				}
			},
			
		}
</script>


У него есть кнопка
<router-link :to="{name: 'PostIdPage', params: {id: post.id, post: post.body}}">Press</router-link>

динамически формирующая url для компонента-ребенка PostIdPage
код PostIdPage.vue
<template>
    <div>
        <h1>Page id: {{ $route.params.id }} </h1>
        
        <div>{{ $route.params.post }}</div>
    </div>
</template>

<script>
    export default {
        name: 'PostIdPage',
        props: ['post']
    }
</script>

<style>

</style>



Пропсом ожидаю post (props: ['post']), но ничего не происходит
результат в Vue Devtools
63c51a316f4fa735784536.png

мой router.js
import Main from '@/pages/Main' 
import PostsPage from '@/pages/PostsPage'
import About from '@/pages/About'
import PostIdPage from '@/pages/PostIdPage'
import {createRouter} from 'vue-router'
import { createWebHistory } from 'vue-router'
const routes = [
    {
        path: '/',
        component: Main    
    }, 
    {
        path: '/posts',
        component: PostsPage    
    },
    {
        path: '/about',
        component: About    
    },
    {
        path: '/posts/:id',
        component: PostIdPage,
        name: 'PostIdPage',
        props: true  
    }
];

const router = createRouter({
    routes, 
    history: createWebHistory(process.env.BASE_URL),
})

export default router;
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы