VueJS单个文件组件中具有嵌套模板的未知自定义元素

时间:2016-12-13 11:51:41

标签: vue.js vue-component vuejs2

我有一个带vue的嵌套结构:

<app>
  <column> : [array]
    <task> : [array]
      <resource> : [array]

我也使用单个文件组件。 对于<app>组件,它看起来像这样(/App.vue文件)

<template>
  <div id="app">
     <column v-for=""></column>
  </div>
</template>

<script>
  import column from './components/Column'

  export default {
    name: 'project',
    components: {
      column
    },  
    data () {
      return {

      }
    }
  }
</script>

<column>组件(/components/Column.vue文件):

<template>
  <div>
      <task v-for=""></task>
  </div>
</template>

<script>
  import task from './Task'

  export default {
    name: 'column',
    components: {
      task
    },
    data () {
      return {

      }
    }
  }
</script>

<task>组件(/components/Task.vue文件):

<template>
  <div>
      <resources></resources>
  </div>
</template>

<script>
  import { resources } from './Init-resource'

  export default {
    name: 'task',
    components: {
      resources
    },
    data () {
      return {

      }
    }
  }
</script>

直到这一刻,一切都完美无瑕。该应用程序呈现一堆列,并在列内部呈现任务。 但接着是另一层<resource>,看起来像这样(/components/Init-resource.vue文件):

<template>
  <div>
    <select>
      <option v-for=""></option>
    </select>
  </div>
</template>

<script>
  export default {
    name: 'resources',
    data () {
      return {

      }
    }
  }
</script>

我收到此错误:

vue.common.js?e881:509 [Vue warn]: Unknown custom element: <resources> - did you register the component correctly? For recursive components, make sure to provide the "name" option. 
(found in component <task>

它无法识别最后一个<resource>组件。但一切看起来都很好,导入正确,模板返回组件......

1 个答案:

答案 0 :(得分:4)

我找到了。我使用了命名导入,所以不用这个:

import { resources } from './Init-resource'

它应该是这样的:

import resources from './Init-resource'