React native React Native Expo:登录时,设置状态
在初始构建或强制重新启动应用程序时,第一个用户登录不会更新状态。当代码更改并重新刷新应用程序时,用户登录将以预期方式更新状态 这是初始构建控制台.log(“stateUser”,stateUser): 这是刷新的console.log(“stateUser”,stateUser): 这是嵌套在React.useMoom()中的我的setState调用:React native React Native Expo:登录时,设置状态,react-native,expo,state,setstate,React Native,Expo,State,Setstate,在初始构建或强制重新启动应用程序时,第一个用户登录不会更新状态。当代码更改并重新刷新应用程序时,用户登录将以预期方式更新状态 这是初始构建控制台.log(“stateUser”,stateUser): 这是刷新的console.log(“stateUser”,stateUser): 这是嵌套在React.useMoom()中的我的setState调用: 我的解决方案是放弃异步存储,转移到安全的地方。我使用了Firebase Auth stateUser stateUser Array [ O
我的解决方案是放弃异步存储,转移到安全的地方。我使用了Firebase Auth
stateUser
stateUser Array [
Object {
"email": "this@email.com",
"id": 4,
"password": "",
"userToken": "devToken",
"username": "a",
},
]
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 });
},