应用程序第一次启动时,我应该在哪个文件中设置反应本机异步存储中的密钥?

In which file do I set a key in react native async storage for the first time the app starts?

我正在开发一个 React Native 应用程序,我想要数据持久化。异步存储工作正常,正如我预期的那样,但问题是我在组件中初始化了一个键 'servers' 并在 componentDidMount 函数中调用了 setItem 函数。现在正因为如此,每次我终止应用程序并再次 运行 它会删除上一个会话中的所有数据,因为 'servers' 键在安装组件时被重置。我明白为什么这会导致问题,所以我想知道我应该在我的代码中的什么地方设置密钥,它不会在每次我的组件安装时重置。

这是我在componentDidMount中调用的函数。这是在异步存储中声明密钥的唯一方法是否正确?因为没有它我将无法调用 getItem.

const save = async () => {
  try {
    server_list = await AsyncStorage.setItem('server_list', JSON.stringify({servers: []}));
  }
  catch (e){
    console.log("Failed to load")
  }
}

只要 server_list 键下没有数据,您就可以通过填充 AsyncStorage 来实现。

这看起来像这样:

setServerList = async (value) => {
  try {
      const serverList = await AsyncStorage.getItem('server_list');
      if(serverList === null) {
        await AsyncStorage.setItem('server_list', value)
      }
  } catch(e) {
    // save error
  }
  console.log('Done.')
}

您仍然可以在 componentDidMount 中调用它并且您的服务器列表将不再被覆盖