javascript - vuejs动态组件为v-bind抛出错误:is,错误是属性或方法...未在实例上定义但在渲染期间引用
问题描述
文件中的代码:
<template>
<component v-bind:is="bbc"></component>
</template>
<script>
import bbc from './bbc.vue';
export default {
name: 'ShowRoom2',
};
</script>
./bbc.vue
<script>
export default {
name: 'bbc',
props: {
msg: String,
},
mounted() {
console.log('bbc is mounted');
},
render() {
if (this.func) this.func();
return (
<div class="bbcMyClass">
<h1>bbc: <span>Pal</span> <span>{this.msg}</span></h1>
</div>
)
}
};
</script>
重现
- git clone git@github.com:adamchenwei/vue-hoc-playground.git
- 去
src/components/ShowRoom2.vue
- 纱线安装&&纱线服务
- 在本地浏览器中观察错误
解决方案
是的,模板中的范围与脚本范围不同。如果您需要一些数据,则需要在代码的“组件”定义部分中声明它。对于您的情况,我想“数据”属性应该可以工作
import bbc from './bbc.vue';
export default {
name: 'ShowRoom2',
data() {
return {
bbc: bbc,
};
},
};
但是,代码的模板部分也看起来很奇怪。你能解释一下你想做什么吗?
推荐阅读
- flutter - MaterialPageRoute 和 PageRouteBuilder 的区别
- python - Docker找不到满足mysqlclient == 2.0.3要求的版本
- flutter - 无法将数据正确写入 Firebase Firestore
- javascript - Javascript 简单的单词计数器
- arrays - 谷歌表格的 ImportJSON 无法处理没有属性的文件?
- flutter - 带有不透明度的 Flutter Web 背景
- php - 如何修复 json_encode 返回空数组或空对象
- servlets - JSF 在通过链接下载文件之前设置请求属性
- python - 限制 Python 请求吞吐量
- api - 有没有办法通过我的旧预付费手机号码发送和接收短信而不涉及手机本身?