React-native:如何在tvOS中实现图像缓存?
我想实现我在互联网上下载的图像缓存,如何用apple tv做到这一点?我尝试了很多库,但任何人都与苹果电视兼容
答案 0 :(得分:0)
您必须使用AsyncStorage
手动执行缓存。您可以使用AsyncStorage.setItem
添加必须缓存到商店的对象,并使用AsyncStorage.getItem
返回对象。这两个函数都将返回承诺。
// cache item
try {
await AsyncStorage.setItem('@MyAppCache:myKey', myItem);
} catch {
//couldn't cache item, handle it
}
// retrieve item from cache
try {
const myItem = await AsyncStorage.getItem('@MyAppCache:myKey');
} catch {
//didn't find item in cache, download from the internet
}
如果这看起来太低级,AsyncStorage
周围有一些非常好的包装,例如react-native-storage,它提供了一些好东西,比如在缓存项目上设置过期日期,查询批处理和其他东西。
答案 1 :(得分:0)
React Native FS现在与tvOS see兼容。所以现在你可以使用任何使用它的库!
例如react-native-cacheable-image:
您需要安装并链接react-native-fs,只需输入:
即可npm install react-native-fs --save # install react-native-fs
react-native link react-native-fs #link native module
现在您可以安装react-native-cacheable-image:
npm i react-native-cacheable-image --save
像这样导入这个库:
import CacheableImage from 'react-native-cacheable-image'
现在您可以使用JSX创建这样的图像:
<CacheableImage
style={{height:20}}
source={{uri: "http://www.foobar.com/defaultImage.jpeg"}}
>
根据您的设备有一些规范,请参阅react-native-cacheable-image
的文档我希望我的回答很有帮助