写 vue 3 路由的时候,出现了 bug

今天尝试用 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,有大佬遇到过吗?是不是我哪里写错了?可以指点一下吗?

img

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');