事情是这样的,我想做一个响应拦截器,如果状态码不正常的时候,清除token并返回到登录页面,如下:
但是控制台报错说:"Uncaught TypeError: Cannot read properties of undefined (reading 'push') at",意思是,router里面不存在push这个方法
说明了这个router有问题,然后我就打印了一下router,发现获取不到,是undefined,后来查了各种资料,发现如下问题:
import { useRouter } from 'vue-router';
↑ 这个方式是用于在Vue组件内部获取路由的实例的方式,但我这不是组件内部,而是封装的一个ts/js文件
然后我就用了下面这个引入方式
import router from '@/router/index';
当你需要直接在JavaScript/TypeScript文件(如入口文件
main.js
或插件、中间件等)中配置或使用路由实例时。通过直接引入router实例,你可以全局地访问和配置路由,比如添加路由守卫、修改路由配置等。
这样就可以获取到路由信息了,然后就可以进行跳转
问题解决