React native 反应在哪里';异步存储存储它的数据?

React native 反应在哪里';异步存储存储它的数据?,react-native,React Native,我是React本机框架的新手,想知道AsyncStorage在设备上的何处存储数据。我知道它为小数据存储创建了一个序列化字典,为大数据存储创建了完整的文件,但是我在哪里可以找到这些文件呢?在IOS上,它看起来像是放进去了 static NSString *const RCTStorageDirectory = @"RCTAsyncLocalStorage_V1"; static NSString *const RCTManifestFileName = @"manifest.json"; st

我是React本机框架的新手,想知道AsyncStorage在设备上的何处存储数据。我知道它为小数据存储创建了一个序列化字典,为大数据存储创建了完整的文件,但是我在哪里可以找到这些文件呢?

在IOS上,它看起来像是放进去了

static NSString *const RCTStorageDirectory = @"RCTAsyncLocalStorage_V1";
static NSString *const RCTManifestFileName = @"manifest.json";

static NSString *RCTGetStorageDirectory()
{
  static NSString *storageDirectory = nil;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    storageDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
    storageDirectory = [storageDirectory stringByAppendingPathComponent:RCTStorageDirectory];
  });
  return storageDirectory;
}

答案在react本机代码中,正如前面的答案所建议的那样。移动设备上的实际位置将由NSDocumentDirectory确定。因为苹果在沙盒环境中运行你的应用程序,你只能访问你的应用程序包中的目录。有关此主题的更多详细信息,请参阅此SO问题/答案:

TL;DR:您可以将任何文件放在此目录中,但在某些情况下,可以将其删除,例如当用户删除并重新安装应用程序时,或者在操作系统升级期间。目录本身是捆绑包中的~/Documents,显然,尽管我不确定这为什么那么重要

react native中的相关代码:

static NSString *RCTGetStorageDirectory()
{
  static NSString *storageDirectory = nil;
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
#if TARGET_OS_TV
    storageDirectory = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
#else
    storageDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
#endif
    storageDirectory = [storageDirectory stringByAppendingPathComponent:RCTStorageDirectory];
  });
  return storageDirectory;
}