应用程序第一次启动时,我应该在哪个文件中设置反应本机异步存储中的密钥?
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 中调用它并且您的服务器列表将不再被覆盖
我正在开发一个 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 中调用它并且您的服务器列表将不再被覆盖