typescript - 未知的自定义元素:- 您是否正确注册了组件?
问题描述
我正在尝试使用 is 指令渲染组件
<template>
<div>
<v-tabs v-model="currentTab" fixed-tabs>
<v-tab v-for="(item, i) in tabItems" :key="i">{{ item }} </v-tab>
</v-tabs>
<v-form ref="form" v-model="isValid" lazy-validation>
<v-tabs-items v-model="currentTab">
<v-tab-item v-for="(item, i) in tabItems" :key="i">
<component :is="'my-company-form-general'"></component>
<my-company-form-general />
</v-tab-item>
</v-tabs-items>
</v-form>
</div>
</template>
这有效<my-company-form-general />
但这不是
<component :is="'my-company-form-general'"></component>
我也试过文件名
<component :is="'MyCompantFormGeneral'"></component>
为什么它不起作用?
我正在使用 nuxt v2.14.6
该组件被调用MyCompanyFormGeneral.vue
并且它在同一个文件夹中
<template>
<div>
General Component
</div>
</template>
<script lang="ts">
import Vue from 'vue'
export default Vue.extend({
})
</script>
<style scoped>
</style>
解决方案
使用components: true
nuxt 时会浏览您的页面和组件并自动导入您使用的所有组件。
使用动态组件 ( <component is="..." />
) 时,它不知道要导入什么,您必须手动导入将与它一起使用的组件:
import Vue from 'vue'
import MyCompantFormGeneral from '~/components/your-path/your-component-here.vue'
export default Vue.extend({
components: {
MyCompantFormGeneral
}
})
我希望这可以解决您的问题。
推荐阅读
- reactjs - 禁用 Redux-Devtools 时 Redux-Saga 不渲染
- flutter - 在 GestureDetector 中水平拖动时,我可以获得画布的坐标吗?
- gradle - 评估后如何在gradle中添加依赖项
- database - MongoDB 中的可序列化隔离级别
- android - Android 上的 Python Matplotlib
- php - PHP Mod_Rewrite & 查询字符串
- sql-server - 仅当列值包含 XXXX 时才触发插入
- python - 如何在没有特殊字符的文本中提取单词 python pandas
- c# - 如果未在 netcore (3.1) 中导出和重新实例化,则在运行时创建的自签名证书将不起作用
- css - 尝试从 reactjs 中的 src/css/style.css 导入 .css 文件