我正在使用expo版本32.在我的登录屏幕上,我将AsyncStorage设置为:
await AsyncStorage.setItem('@MyApp:user', '1');
当API在给定凭据上返回true时,上面的代码运行。在App.js中使用react navigation 2,它会重定向到我的登陆页面。
const AppStack = createDrawerNavigator({
Screen_Landing: { screen: Screen_Landing}
}, {backBehavior: 'initialRoute'});
const AppScreens = createStackNavigator({
AppStack: { screen: AppStack}
}, {headerMode:'none'})
const AuthStack = createSwitchNavigator({Screen_Login: { screen: Screen_Login}},{headerMode:'none'});
const MyNavigator = createSwitchNavigator(
{
AuthLoading: AuthLoadingScreen,
App: AppScreens,
Auth: AuthStack,
},
{
initialRouteName: 'AuthLoading'
}
);
问题是,当我成功登录时,它会将我重定向到登录页面,但登陆页面不会获得AsyncStorage值,但是当我完全关闭应用程序并重新打开它时,它会显示AsyncStorage值。我不知道它与世博会的问题或反应导航问题。有没有人有同样的问题。我的sqlite也有同样的问题。如果我在登录前在我的sqlite中添加一些东西并尝试在下一个屏幕中获取数据它也没有显示任何内容,但如果我关闭应用程序并重新打开则会显示来自sqlite的数据。请指导最新的问题。
在我的登陆页面上,我正在获取以下数据:
async componentDidMount() {
var uid = await AsyncStorage.getItem('@MyApp:user')
console.log(uid)
}
好像你正试图渲染不是prop
或state
的数据。
如果您在React的初始渲染后有数据进入,除非更改为state
或props
,否则不会更新。
您可以做的是将用户值和sqlite数据设置为组件的状态。