重启应用后,Expo Show的AsyncStorage数据

时间:2019-02-22 12:48:33

标签: reactjs sqlite react-native expo asyncstorage

我正在使用32版本的博览会。在登录屏幕上,我将AsyncStorage设置为:

await AsyncStorage.setItem('@MyApp:user', '1');

当API在给定凭据上返回true时,以上代码将运行。在App.js中,通过使用React导航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值。我不知道它与expo有关的问题,也没有反应导航问题。有没有人有同样的问题。我的sqlite也有同样的问题。如果我在登录之前在我的sqlite中添加了一些内容并尝试在下一个屏幕中获取数据,它也不会显示任何内容,但是如果我关闭该应用程序并重新打开,则它会显示来自sqlite的数据。请指出问题所在。

在我的登录页面上,我正在获取数据,例如:

    async componentDidMount() {
    var uid = await AsyncStorage.getItem('@MyApp:user')
console.log(uid)
    }

1 个答案:

答案 0 :(得分:0)

似乎您正在尝试呈现非propstate以外的数据。

如果您有数据在React的初始渲染之后输入,除非更改为stateprops,否则它将不会更新。

您可以做的是将用户值和sqlite数据设置为组件的状态。