javascript - 无法在组件内渲染组件
问题描述
我有非常基本的 Vue 应用程序(在 Rails 上):
你好_vue.js:
import Vue from 'vue/dist/vue.esm'
import TurbolinksAdapter from 'vue-turbolinks'
Vue.use(TurbolinksAdapter)
import CollectionSet from '../collection_set.vue'
document.addEventListener('turbolinks:load', () => {
const app = new Vue({
el: '#app',
components: { CollectionSet }
})
})
集合集.vue:
<script>
import Collectable from './collectable.vue'
export default {
components: { Collectable }
}
</script>
<template>
<p>test</p>
<collectable />
</template>
收藏品.vue:
<script>
export default {
name: 'collectable'
}
</script>
<template>
<p>test 2</p>
</template>
我的网页:
<div id="app"><collection-set /></div>
在上面的示例中,我什么都看不到,但是当我从 中删除<collectable />
时collection_set.vue
,我看到了test
. 我没有任何错误。
为什么collectable
没有被渲染?
解决方案
template
将collection_set.vue的代码更改为
<template>
<div>
<p>test</p>
<collectable />
</div>
</template>
错误的原因是在Component template should contain exactly one root element
这里我们试图创建两个根元素p
和collectable
现在我将它包装在一个父div
容器中,它工作得很好。请尝试让我知道它是否有帮助。
一个建议是始终检查浏览器开发工具的控制台以检查可能是什么问题。在这种情况下,控制台给出了确切的错误,代码编译也因同样的错误而失败。
推荐阅读
- axapta - 如何获取 FormReferenceGroupControl 的值
- reactjs - 来自外部函数的 React Render 部分
- java - Java 方法定义编译错误通配符
- javascript - 使用 lodash debounce 返回一个承诺
- javascript - 两个条件之间的 SetTimeInterval 不起作用
- javascript - 如果之前的提取出错,如何停止执行提取?
- android - 随着TextView随文本增长,Android相对布局中的相邻TextView重叠,如何解决这个问题?
- nginx - 在 Ubuntu 19.04 上使用 Nginx 安装乘客时出错
- swift - 为暂时不会出现的视图控制器预加载 SKTextures?
- java - 应用程序(src/main)运行时,类路径上的 src/test/resources 中的文件是否存在?