検索

ホームページ  >  に質問  >  本文

ナビゲーション ガードで無限リダイレクト エラーが発生しました: Uncaught (promise)

次のルート定義を使用する vue3 ルーターがあります

リーリー

ログインしている場合、特定のアカウントのみが /cms パスにアクセスできる Google 認証ログイン機能を実装しようとしています。ストアには loggedIn というブール値があり、コンポーネント内で true に切り替わります。写真のように

リーリー

ルーターでは、ユーザーの出身地と特定のユーザーがログインしているかどうかに基づいて、どのページにルーティングするかを確認する beforeEach アクションを実行しています (図を参照)。

リーリー

正しいユーザーがログインしている場合を除いて、すべて問題ないようです。キャッチされない (約束) エラー: ナビゲーション ガードで無限リダイレクトがスローされ、ページは /cms にリダイレクトされず、 /login ページに留まることが選択されました。

P粉291886842P粉291886842341日前395

全員に返信(1)返信します

  • P粉165823783

    P粉1658237832023-12-30 00:39:57

    cms がすでに現在のルートであるときに next({ name: "cms" }) を実行するとエラーになります。 next() である必要がありますが、else if は冗長になります:

    リーリー

    返事
    0
  • キャンセル返事