React-Native-Expo: при входе в систему устанавливается состояние

#react-native #expo #state #setstate

#react-native #expo #состояние #setstate

Вопрос:

При первоначальной сборке или принудительном перезапуске приложения первый вход пользователя не обновляет состояние. При изменении кода и повторном обновлении приложения состояние входа пользователя обновляется ожидаемым образом.

Это начальная консоль сборки.log(«stateUser», stateUser) :

 stateUser
  

Это обновленный console.log («stateUser», stateUser) :

 stateUser Array [
 Object {
"email": "this@email.com",
"id": 4,
"password": "",
"userToken": "devToken",
"username": "a",
   },
]
  

Это мой вызов setState, который вложен внутри React.useMemo():

   const authContext = React.useMemo(() => ({
signIn: async (foundUser) => {
  // console.log(foundUser);
  userInfo = foundUser;

  const userToken = String(foundUser[0].userToken);
  const userName = foundUser[0].username;

  
  foundUserState = foundUser;
  setStateUser(foundUserState);

  loginStateUpdater(foundUser);
  // console.log(foundUser);
  // console.log("aaaaaa", stateUser, "this is the stateUser")

  try {
    await AsyncStorage.setItem("userToken", userToken);
  } catch (e) {
    console.log(e);
  }
  // console.log('user token: ', userToken);
  dispatch({ type: "LOGIN", id: userName, token: userToken });
},
  

Ответ №1:

Мое решение состояло в том, чтобы отказаться от AsyncStorage и перейти на что-то безопасное. Я использовал аутентификацию Firebase