解决vue 栏目权限管理,第一次跳转路由守卫拿不到值,需要手动刷新一下才能拿到值才有栏目的问题
前端小白,今天弄一个vue的权限管理,期间,路由守卫中拿不到方法调用的数据,原因是我的login方法中 用的context.dispath调用另外两个方法
小白我的解决方法
注释掉context.dispatch调用,在此处用 await 直接请求接口后面这些是我的解决思路,大忙人可以忽略了
这里调用login方法实现登录按道理前面已经设置了 localStore 和 vuex了
路由中获取代码两种都获取不到我要的角色信息也不清楚是为什么,查了一下async 和await,后面我用console.log打印login设置的token
结果发现token又是有值的
又是一顿痛苦排查,果然!我发现执行到login方法时,并没有去await 等待执行完我 context.dispath的两个方法,导致后面的代码执行,
也就是调用.then里面的判断跳转,我这里是跳转成功的,从而触发了路由守卫,而这个时候路由守卫却是拿不到值的,因为并没有await等待context.dispath方法执行完,所以拿不到值。
总结:vue actions中 方法用context.dispath()嵌套调用其他的方法,虽然其他方法掉的接口又await定义,但是会失效
这难道就是基础不到位,折腾了几小时,…
…记录一下~