在uni-app使用三方插件uni-simple-router的时候,自动以meta属性进行导航守卫拦截时,设置meta属性失效

在做项目的时候,进行TabBar组件点击跳转需要路由守卫,在进行判断时失效,打印console.log(to.meta.isLogin)值为undefined

//route,js
//全局路由前置守卫
router.beforeEach((to, from, next) => {
	console.log(to.meta.isLogin);//undefined
	if (to.meta.isLogin && !store.state.userInfo) {
		next({
			name: "login",
			NAVTYPE: 'push'
		})
	} else {
		next();
	}
});

经查官网文档才明白为什么打印不到这个自定义的meta属性
官网快速入手教程
原来是在官网快速教程中,vue.config.js默认配置的uni-read-pages字段只包括includes: ['path', 'name', 'aliasPath'],没有meta这个属性,所以获取不到,我们需要自己手动添加自己需要的字段
添加meta属性:includes: ['path', 'name', 'meta', 'aliasPath']

具体详情参考官网教程:自动构建路由表

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐