React-native:如何在tvOS中实现图像缓存?

时间:2017-04-27 14:37:49

标签: javascript reactjs react-native tvos apple-tv

React-native:如何在tvOS中实现图像缓存?

我想实现我在互联网上下载的图像缓存,如何用apple tv做到这一点?我尝试了很多库,但任何人都与苹果电视兼容

2 个答案:

答案 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

的文档

我希望我的回答很有帮助