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 не чувствительны к регистру. Любой заглавный символ будет интерпретирован как строчный. Поэтому имена верблюдов в верблюжьих ножах должны использовать их эквиваленты в кебабах.

Другие вопросы по тегам