gpt4 book ai didi

image - 如何在 React Native 中清除图片的磁盘缓存

转载 作者:行者123 更新时间:2023-12-04 03:09:42 34 4
gpt4 key购买 nike

我在使用image.prefetch方法的时候,想清理它的磁盘缓存,但是在React Native中没有找到合适的方法。

最佳答案

更新以澄清:React Native 目前没有公开一种方法来完成您需要的开箱即用的操作,您将不得不使用第三方解决方案。

因此,除了使用 native Image.prefetch(),您还可以使用我的高阶组件模块来升级 以处理缓存/永久存储,并完成此任务。

React Native Image Cache HOC

Tl;DR 代码示例:

import imageCacheHoc from 'react-native-image-cache-hoc';
const CacheableImage = imageCacheHoc(Image);

export default class App extends Component<{}> {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>Welcome to React Native!</Text>
<CacheableImage style={styles.image} source={{uri: 'https://i.redd.it/rc29s4bz61uz.png'}} />
<CacheableImage style={styles.image} source={{uri: 'https://i.redd.it/hhhim0kc5swz.jpg'}} permanent={true} />
</View>
);
}
}

第一个图像将被缓存,直到总本地缓存增长超过 15 MB(默认情况下),然后缓存的图像最先被删除,直到总缓存再次低于 15 MB。

第二张图片将永久保存到本地磁盘。人们用它来代替您的应用程序传送静态图像文件。

如果你想像 Image.prefetch() 这样预热缓存

import imageCacheHoc from 'react-native-image-cache-hoc';
const CacheableImage = imageCacheHoc(Image);
CacheableImage.cacheFile('https://i.redd.it/hhhim0kc5swz.jpg')
.then( localFileInfo => {
console.log(localFileInfo);

// Console log outputs:
//{
// url: 'https://i.redd.it/rc29s4bz61uz.png',
// cacheType: 'cache', //add true as 2nd param to cacheFile() to make permanent
// localFilePath: '/this/is/absolute/path/to/file.jpg'
//}

});

然后当你想按要求从磁盘中清除它时:

import RNFetchBlob from 'react-native-fetch-blob';
RNFetchBlob.fs.unlink(localFilePath.localFilePath)
.then(() => {
console.log('file deleted!');
});

希望对你有帮助!

关于image - 如何在 React Native 中清除图片的磁盘缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46271349/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com