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

オブジェクトの更新時に ReactJS の useState が機能しない

次の認証コンテキスト プロバイダーがあります。ユーザーが認証に成功したら、いくつかのトークン値を設定します

リーリー

ホーム ビューで「loggedUserToken」値を使用して、それが使用可能かどうかを確認しました。

リーリー

"loggedUserToken" は、認証プロバイダーで設定した場合でも (認証プロバイダーで "setLoggedUserToken" の直後にコンソールに出力した場合でも) 常に空になります。 「setSession」が正しく設定されている場合、値は別のビューで読み取られます。

ここで何が問題なのかわかりません

更新: 認証プロバイダーの使用方法は次のとおりです。 「Outlet」は MainLayout 内のさまざまなビューを置き換えます。

リーリー

P粉986028039P粉986028039365日前606

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

  • P粉283559033

    P粉2835590332023-09-22 11:31:13

    解決策を見つけました。上記のエラーは、使用しているレイアウトが原因で発生します。認証ビュー (ログイン、登録など) で 1 つのレイアウトを使用し、他のビュー (ホーム、連絡先など) で別のレイアウトを使用しています。

    これらを認証コンテキスト プロバイダーに個別にカプセル化しました。次のように:###

    リーリー

    リーリー

    しかし、認証コンテキスト プロバイダーを App.js に移動すると、機能しました。私が理解しているところによると、何が起こっているのかというと、認証レイアウトからメイン レイアウトに移動するときに認証コンテキスト プロバイダーがリセットされるということだと思います (メイン レイアウトでは別のコンテキスト プロバイダーです)。ただし、コンテキスト プロバイダーを最上位 (App.js) に移動したため、すべてのレイアウトで共通になりました。

    リーリー

    返事
    0
  • キャンセル返事