Vue.js Пропущенные реквизиты не определены в любой области
Я делаю одностраничный стиль написания приложений, чтобы создать приложение с помощью vue. Однако данные реквизита, переданные дочернему компоненту, не загружаются ни в какую область (созданный (), смонтированный () и т. Д.).
маршрутизатор / index.js
import Vue from 'vue'
import Router from 'vue-router'
import Ques from '@/components/timeline/Ques'
import Timeline from '@/components/Timeline'
Vue.use(Router);
export default new Router({
mode: 'history',
routes: [
{
path: '/feeds',
name: 'Timeline',
component: Timeline
},
{
path: '/ques',
name: 'Ques',
component: Ques
}
]
})
timeline.vue
<template>
<main class="timeline_wrapper">
<Ques :timelinePosts="posts"></Ques>
</main>
</template>
<script>
import Ques from './timeline/Ques.vue'
export default {
name: "timeline",
data() {
return {
posts: [
{
id: 0,
name: 'hi'
},
]
}
},
components: { Ques }
}
</script>
Ques.vue
<template>
</template>
<script>
export default {
name: "Ques",
props: [
'timelinePosts'
],
created () {
console.log(this.timelinePosts);
}
}
</script>
то, что следует за console.log, - это ошибка, говорящая о том, что timelinePosts не определено. Как правильно добавить значение prop в дочерний компонент?
2 ответа
Я думаю, потому что вы определили Ques в вашем маршрутизаторе, а он не имеет props: true
, И я также думаю, что если вы не собираетесь использовать его с <router-link>
Вы должны удалить это
Я думаю, что название вашей собственности неверно. Просто измените в timeline.vue :timelinePosts="posts"
в :timeline-posts="posts"
Имена атрибутов HTML не чувствительны к регистру. Любой заглавный символ будет интерпретирован как строчный. Поэтому имена верблюдов в верблюжьих ножах должны использовать их эквиваленты в кебабах.