我正在开发我自己的私人世博会,使用 Expo SDK 32.0.0 的 React Native 应用程序,我目前正在构建一个身份验证流,我通过我的 graphql 端点获取一个 JWT 令牌,然后将其存储在 AsyncStorage 中。
我登录,一切正常,我在异步存储中获得了一个令牌,我被重定向到新的堆栈,然后我在代码中进行一些更改,保存它并热重载应用程序,然后当它检查我是否有令牌时,它说它未定义,然后将我的回传到登录流。
所以我的问题是,异步存储是在热重载后重置还是缺少一些东西?
设置令牌后重新竞争。
componentDidMount = async () => {
const StoredAuth = await AsyncStorage.getItem(Config.STORAGE_AUTH_KEY)
this.props.navigation.navigate(StoredAuth ? 'App' : 'Auth');
}
热重载不会影响AsyncStorage
。假设您尝试在屏幕组件中进行热重载App
。
任何与STORAGE_AUTH_KEY
相关的地方都可能在您使用App
组件或store
(如 redux 和 mobx)中出现意外情况。
您可以在此处查看热重载的工作原理。
使用 expo-secure-store
而不是异步存储。
https://docs.expo.dev/versions/latest/sdk/securestore/