今天尝试用 vue 3 写个小 Demo,想写个路由(用的 vue-router: ^4.1.3),在修改 App.vue 文件这一步的时候,运行到 Google Chrome 就报错了:Uncaught TypeError: Cannot destructure property 'options' of 'inject(...)' as it is undefined.试了很久依旧没能修复这个 bug,有大佬遇到过吗?是不是我哪里写错了?可以指点一下吗?
https://github.com/vitejs/vite/issues/1176
需要降低一下vue-router 版本再试试
检查板本,升级适合的板本
需要降低一下vue-router 版本
感谢各位大佬的回答!我今天从零按照步骤重新走了两遍,居然都复现不了这个 bug,真是无语了~
你这个问题应该是错误了用了inject方法解构变量,因为你在父组件中没有用provide去定义这个变量;
//父组件中
setup() {
let title = ref('这个要传的值')
provide('title', title); // provide的第一个为名称,第二个值为所需要传的参数
return {
title
}
}
// 子组件中
import { inject } from 'vue'
export default {
let title = inject('title'); // inject的参数为provide过来的名称
return {
title
}
}
同样遇到这个问题,你可能是id为tt的div没有class="easyui-tabs"这个属性值,楼主可以认真仔细检查一下
main.js中:
createApp(App).use(router).mount('#app')改一下,拆开来试试:
const app=createApp(App);
app.use(router);
app.mount('#app');