我正在使用Expo版本32。在我的登录屏幕上,我设置了Asyncstorage,例如:
await AsyncStorage.setItem('@MyApp:user', '1');
上面的代码在给定凭据上返回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'
}
);
问题是,当我成功登录时,它将我重定向到着陆页,但是着陆页没有异步值,但是当我完全关闭应用程序并重新打开它时,然后显示异步值。我不知道它与世博或反应导航问题的问题。有人有同样的问题吗?我的sqlite也有同样的问题。如果我在登录之前添加一些东西,请尝试在下一个屏幕上获取数据,它也没有显示出来,但如果我关闭了应用程序&然后打开,然后显示来自sqlite的数据。请指导什么问题。
在我的着陆页上,我正在获取以下数据,例如:
async componentDidMount() {
var uid = await AsyncStorage.getItem('@MyApp:user')
console.log(uid)
}
似乎您正在尝试渲染不是prop
或state
的数据。
如果您有React的初始渲染后出现数据,则除非更改为state
或props
。
您可以做的是将用户值和SQLite数据设置为组件的状态。