未知的自定义元素:-您是否注册了组件 正确吗?对于递归组件,请确保提供“名称” 选项。
我有一个侧边栏,其中包含一个TreeList,该TreeList包含每个TreeNode的TreeNode。
对于其他遇到此问题的人,我已经读了很多。我尝试了诸如为组件指定烤肉串用例名称之类的解决方案。我已经读到这是名称空间的问题,并且我同意,因为我有一个示例在单个文件中处理所有组件。当组件位于单独的文件中时,使用vue CLI重新加载脚本时会发生上述错误。有时,在保存文件时没有解释,错误消失了,递归再次起作用。
然后,当其正常工作时,单击子节点时会出现错误。
无法读取未定义的属性“ length” 在simpleNormalizeChildren
与vue CLI服务有关系吗? 我愿意在全局名称空间中声明这些内容,除非不确定该如何正确工作。
import TreeList from './TreeList.vue'
export default {
name: 'tree-node',
components: {
'tree-list': TreeList
},
...
import TreeNode from './TreeNode.vue'
export default {
name: 'tree-list',
components: {
'tree-node': TreeNode
}
...
import TreeList from './TreeList.vue'
import TreeNode from './TreeNode.vue'
export default {
name: 'Sidebar',
components: {
TreeList,
TreeNode
}
答案 0 :(得分:3)
这可能是由于TreeNode
和Vue.component
组件之间的circular referencing导致的。.
仔细观察,您会发现这些组件实际上将 成为渲染树中彼此的后代和祖先- 矛盾!
要解决此矛盾,您可以使用beforeCreate
在全球范围内注册组件,也可以将其中一个组件的导入推迟到以后(通过将导入移动到TreeList.vue
钩子或使用async components来演示here)..
export default {
name: 'tree-list',
components: {
'tree-node': () => import('./TreeNode.vue')
}
...
}
{{1}}