0

React-native でアプリを開発しており、そのバックエンドとして AWS Amplify を使用しています。現在認証されているユーザーのIDを取得し、状態変数として登録したいです。私のコードは次のとおりです。

  const [userId, setUserId] = useState("");

  // set AuthUserId
  useEffect(() => {
    let isMounted = true;

    const setAuthUserId = async () => {
      try {
        const userInfo = await Auth.currentAuthenticatedUser();
        const id = userInfo.username;
        isMounted && setUserId(id);
        console.log("userId: ", userId);
      } catch (err) {
        console.log("Failed to catch the AuthUser Id", err);
      }

      return () => {
        isMounted = false;
      };
    };
    setAuthUserId();
  }, []);

私が期待する方法は、最初userIdはデフォルト値として空の文字列に設定されていることです。次に、非同期メソッドで、プロミスが解決されるのを待ち、解決された後、状態変数に保存されている userId を使用してコンポーネントを再レンダリングする状態変数を設定します。しかし、状態変数が空の文字列に設定され、コンポーネントが再レンダリングされません。

私は React-native と AWS Amplify に慣れていないので、何がうまくいかないのか教えていただけると大変助かります。ありがとうございました。

4

0 に答える 0