描述
你好呀,
我想使用 bit.dev 分享我的 Vue 组件。
我有一个像这样的 Vue 组件:
<template>
...
</template>
<script>
import CustomItem from "../../../../objects/CustomItem";
export default {
name: "Test",
props: {
item: {
type: CustomItem,
},
},
};
</script>
正如你所看到的,这个组件要求 prop 是一个特定的对象。
这是CustomObject
export default class CustomItem {
constructor ({id, name}) {
this.id = id;
this.name = name;
}
// provide cool functions here
}
这在我的项目中运行良好,但如果我以这种方式包含它则不行:
<template>
<div v-if="!$wait.is('item.loading')">
<MyComponent :item="item"/>
</div>
</template>
<script>
import MyComponent from '@bit/myproject.my-component'
import CustomItem from '@bit/myproject.custom-item';
export default {
name: 'Home',
components: {MyComponent},
data () {
return {
item: {}
};
},
beforeRouteEnter (to, _from, next) {
const promises = [
axios.get (`/api/item/1`)
];
next (vm => {
vm.$wait.start ('item.loading');
axios.all (promises)
.then (([itemRes]) => {
vm.item = new CustomItem(itemRes.data.data);
}).finally(()=>{
vm.$wait.end ('item.loading');
});
});
},
};
</script>
在这种情况下,我收到此错误:
[Vue warn]: Invalid prop: type check failed for prop "item". Expected T, got Object
found in
---> <MyComponent> at resources/js/components/Items/MyComponent.vue
我在这里错过了什么?
编辑
正如我所看到的,@bit/myproject.my-component
由 bit.dev 提供的组件提供了我的组件的打包和缩小版本。在那里,道具看起来像这样:
props:{item:{type:function t(e){var n=e.id,r=e.name})...
所以我想这就是为什么会发生这种情况。