一、问题:
在vue项目中使用路由报以下错误:[Vue warn]: Error in render: "TypeError: Cannot read properties of undefined (reading 'matched')",如图👇


这个错误表示,App组件在渲染过程中尝试访问一个未定义的属性或方法,例如访问一个空对象的属性或调用一个未定义的函数。

二、错误定位:
出错的代码尝试访问一个叫做'matched'的属性,但是该属性所属的对象是undefined,导致抛出了TypeError异常。

三、解决思路:
检查代码中是否有未定义变量或者空对象的情况👇
我是在App组件中使用了router,在main.js中引入和注册router的,检查发现在main.js中引入但未注册router。

四、正确写法:
在main.js中引入和注册router,如下是正确写法👇

import Vue from 'vue'
import App from './App'

import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(router);
Vue.use(ElementUI);

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router, //注册router
  render:h=>h(App)
})

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐