之前的代码是图三那样,我就改了白名单
不管是knowReadonly?id=23还是knowReadonly/23/,我都获取不到
有个事情特别搞笑就是,我不知道为什么
if(whiteList.indexOf(to.path) !== -1)
这里本是/404/23/,截图截慢了
这里是/404?id=23
router的path配置就是/404,白名单也是404,为什么拿不到\
然后我通过打印数据:
这个to是怎么来的呢:
那么我的router配置是怎么来的呢:
答案显而易见了,草
改一下路由: path: '/knowReadonly/:id/:tk',
knowReadonly?接参数可以匹配路由/knowReadonly
但是knowReadonly/id/这样接参数,路由的path就不再是/knowReadonly了
为什么呢:
用白名单的数组,并且要用?传参
这样的话to.path的路由就不会/knowReadonly/:id/:tk了,固定是/knowReadonly,
(路由守卫的to.path来源于router路由的配置)
然后下面的whiteList.indexOf(to.path)才能固定匹配'/knowReadonly'并且返回对应的下标
用/knowReadonly/23/tksadsadsa传参的话,to.path就会是/knowReadonly/23/tksadsadsa,是 不固定的,就一直为-1,查询不到
总结:to.path来源于router配置,/id/tk传参每次都不固定,所以得用to.path去匹配,而不是whiteList.indexof全匹配查询下标
所以呢,可以改为使用,to.path.includes(whiteList[6]),而不是用whiteList.indexOf
/knowReadonly"加在whiteList用whiteList[6]下标