【发布时间】:2021-05-10 13:12:33
【问题描述】:
我在执行本地存储操作时遇到了一些困难...
"react-native": "0.64",
"react-native-storage": "^1.0.1"
如标题所示,我正在使用 react-native-storage,并且我创建了两种简单的方法来处理写作和阅读:
import Storage from 'react-native-storage';
import AsyncStorage from '@react-native-community/async-storage';
const storage = new Storage({
size: 1000,
storageBackend: AsyncStorage,
defaultExpires: null,
enableCache: true,
sync: {
return: 'No data.'
}
});
const saveToLocalStorage = (key: any, data: any) => {
storage.save({
key,
data,
expires: null
})
}
const getFromLocalStorage = (key: any) => {
storage.load({
key,
autoSync: true
})
.then(data => {
return { data }
})
.catch(err => { });
}
export { saveToLocalStorage, getFromLocalStorage }
如您所见,这几乎是来自https://www.npmjs.com/package/react-native-permissions 的代码示例。
在 App.tsx 文件中,我执行以下操作:
useEffect(() => {
saveToLocalStorage('test', 'test data');
const test = getFromLocalStorage('test');
}, [])
返回undefined。
但是如果在方法getFromLocalStorage我替换
.then(data => {
return { data }
})
为
.then(data => console.warn(data));
结果是下面的图像:
简而言之:
- 如果函数从存储中返回对象,它会带来未定义的。
- 如果函数从存储中返回一个 console.log,它会带来我在上面写的内容。
【问题讨论】:
标签: react-native