beforeEach를 사용할 때 브라우저가 응답하지 않습니다.
P粉724256860
P粉724256860 2024-03-19 22:53:00
0
1
336

내 앱에서 사용자가 액세스할 수 있는 경로와 액세스할 수 없는 경로를 설정하려고 하는데 가끔 브라우저가 멈추고 오류 메시지가 표시되지 않아 내가 뭘 잘못하고 있는지 알 수 없습니다.

첫 번째 IF에서는 경로에 액세스하려면 인증이 필요한지 확인하고, 거짓이면 사용자를 로그인 페이지로 보냅니다. 그런 다음 사용자가 속한 그룹을 확인하고 실패하면 루트 페이지 "/"로 리디렉션합니다. 이러한 IF 문 중 어느 것도 사실이 아닌 경우 사용자가 탐색하려는 페이지로 리디렉션합니다.

router.beforeEach((to, from, next) => {

      const isAuth = localStorage.getItem("auth");
      const userGroupRaw = localStorage.getItem("userData");
      const accessGroup = to.meta.group;
      let userGroup;
      if (userGroupRaw) {
        userGroup = JSON.parse(userGroupRaw).id_access;
      }
    
      if (to.matched.some((record) => record.meta.requiresAuth)) {
        console.log("if1");
        if (isAuth === "false") {
          next({ path: "/login" });
        }
        if (
          (accessGroup === 1 && (userGroup === 3 || userGroup === 4)) ||
          !userGroup
        ) {
          next({ path: "/" });
        }
    
        next();
      }
    
      next();
    });
    export default router;

P粉724256860
P粉724256860

모든 응답(1)
P粉409742142

"else" 문을 사용하지 않았으므로 next()를 여러 번 호출하여 무한 루프에 빠졌습니다(댓글에서 언급했듯이).

이 시점에서 return를 사용하여 코드를 중지할 수 있습니다.

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿