Sig*_*Sig 7 react-native asyncstorage
在原生 iOS 代码中,我可以使用NSUserDefaults来存储和获取数据,这是同步操作。在 react-native 中,提供的是使用AsyncStorage,但我需要一个同步存储的解决方案,比如NSUserDefaults. 我将使用数据获取的结果来确定要显示哪个屏幕,但由于它是异步的,因此在尝试获取持久数据时总是未定义。
打电话后
AsyncStorage.getItem('@MySuperStore:key');
react-native 将在其他线程中调用依赖于您的平台的本机函数,然后它将返回一个解决它的承诺,所以如果像这样调用
let value = AsyncStorage.getItem('@MySuperStore:key');
value ++;
Run Code Online (Sandbox Code Playgroud)
您的值无效,因为稍后将提供数据
,正确的做法是:
try {
const value = await AsyncStorage.getItem('@MySuperStore:key');
if (value !== null){
// We have data!!
console.log(value);
}
} catch (error) {
// Error retrieving data
}
Run Code Online (Sandbox Code Playgroud)
这样做的另一种方法是
try {
AsyncStorage.getItem('@MySuperStore:key',(value )=>{
if (value !== null){
// We have data!!
console.log(value);
}});
} catch (error) {
// Error retrieving data
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9470 次 |
| 最近记录: |