#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