为什么即使我启用cacheOnly,react native fastimage也会获取图像?

gcmastyq  于 2023-11-21  发布在  React
关注(0)|答案(3)|浏览(154)

根据package的文档,如果您这样做:

cache={FastImage.cacheControl.cacheOnly}

字符串
它应该只显示缓存中图像,而不发出任何网络请求。
然而,我试图清除缓存并重新运行应用程序,它仍然获取图像:

const cacheImg = profile_pic_url && (<TouchableOpacity ><FastImage
     source={{
        uri: profile_pic_url.url,
        priority: FastImage.priority.high,
     }}
     style={styles.userProfilePic}
     cache={FastImage.cacheControl.cacheOnly}
     resizeMode={FastImage.resizeMode.cover}
  /></TouchableOpacity>);


可以肯定的是,我甚至清楚的componentDidMount:

FastImage.clearMemoryCache();
  FastImage.clearDiskCache();


这是一个bug还是我错过了什么?

5ktev3wc

5ktev3wc1#

根据documentationcache prop应该在源代码内部,如下所示:

const cacheImg = profile_pic_url && (
 <TouchableOpacity>
   <FastImage
     source={{
        uri: profile_pic_url.url,
        priority: FastImage.priority.high,
        cache:'cacheOnly'
     }}
     style={styles.userProfilePic}
     cache={FastImage.cacheControl.cacheOnly}
     resizeMode={FastImage.resizeMode.cover}
   />
 </TouchableOpacity>
);

字符串
Link - react-native-fast-image#sourcecache-enum

roejwanj

roejwanj2#

如果该高速缓存被清除,本地就没有东西可以获取了,所以它被迫远程获取图像。我认为当该高速缓存中没有任何东西时,不可能告诉它不要获取图像--你永远不会得到你的图像。

gg58donl

gg58donl3#

如果内存对你来说是个大问题,那么试着直接从react-native中使用Image,并删除react-native-fast-image。我也面临着同样的问题。
System. out. println(); System. out. println();
在componentWillUnMount()中
它清除了大量的内存,但我的目标是没有实现,所以我只是使用图像和它的奇迹对我来说。

相关问题