我正在使用 Firebase 和 Vue js 构建帖子应用。我有一些问题: 我的路由器:
import Vue from 'vue'
import Router from 'vue-router'
import Dashboard from '@/components/Dashboard'
import Login from '@/components/Login'
import SignUp from '@/components/SingUp'
import RecentPosts from '@/components/RecentPosts';
import firebase from 'firebase'
Vue.use(Router)
let router = new Router({
routes: [
...... some routes
{
path: '/recentPosts',
name: 'RecentPosts',
component: RecentPosts,
meta:{
requireAuth: true
}
}
]
})
router.beforeEach((to, from, next) => {
let currentUser = firebase.auth().currentUser;
let requiresAuth = to.matched.some(r => r.meta.requiresAuth);
console.log("CURRENTUSER",currentUser);
if(!currentUser && requiresAuth) {
next('Login');
}else if(currentUser && !requiresAuth) {
next('Dashboard');
}else if (currentUser && requiresAuth) {
next();
}else {
next();
}
});
export default router;
在我转到 /recentPosts
之后,我的函数 beforeeach 触发了很多次,以至于它阻止了我的应用程序。
为什么我无法访问/recentPosts ?我已经登录用户,所以它应该可以解决我的路由问题,但事实并非如此。
else if (currentUser && requiresAuth) {
next();
}
它应该解析我的“/recentsposts”路线,但事实并非如此
最佳答案
这可能是因为您在 require(s)
处输入错误:
{
path: '/recentPosts',
name: 'RecentPosts',
component: RecentPosts,
meta:{
requireAuth: true // <- without "s" at the end of require
}
}
]
})
router.beforeEach((to, from, next) => {
let currentUser = firebase.auth().currentUser;
let requiresAuth = to.matched.some(r => r.meta.requiresAuth); // <- with an "s" at the end of requires
关于javascript - Firebase beforeeach() 触发很多次(Vue 应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53300065/