表演者反应天然图像成分。

快速示例示例应用程序。
React Native的Image组件在大多数情况下都像浏览器一样处理图像缓存。如果服务器正在返回图像的适当缓存控制标头,则通常会在浏览器中获得您所具有的内置缓存行为。甚至很多人都注意到:
FastImage是解决这些问题的Image替代品。 FastImage是围绕Sdwebimage(iOS)和Glide(Android)的包装纸。
注意:您必须使用React Native 0.60.0或更高版本才能使用最新版本的react-native-fast-image 。
yarn add react-native-fast-image
cd ios && pod install import FastImage from 'react-native-fast-image'
const YourImage = ( ) => (
< FastImage
style = { { width : 200 , height : 200 } }
source = { {
uri : 'https://unsplash.it/400/400?image=1' ,
headers : { Authorization : 'someAuthToken' } ,
priority : FastImage . priority . normal ,
} }
resizeMode = { FastImage . resizeMode . contain }
/>
) 如果使用Proguard,则需要将这些行添加到android/app/proguard-rules.pro :
-keep public class com.dylanvann.fastimage.* {*;}
-keep public class com.dylanvann.fastimage.** {*;}
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
source?: object远程图像加载的源。
source.uri?: string远程URL加载图像。例如'https://facebook.github.io/react/img/logo_og.png' 。
source.headers?: object将图像加载的标题。例如{ Authorization: 'someAuthToken' } 。
source.priority?: enumFastImage.priority.low低优先级。FastImage.priority.normal (默认) - 正常优先级。FastImage.priority.high高优先级。source.cache?: enumFastImage.cacheControl.immutable (默认) - 仅在URL更改时更新。FastImage.cacheControl.web使用标题并遵循正常的缓存程序。FastImage.cacheControl.cacheOnly仅显示缓存中的图像,请勿提出任何网络请求。defaultSource?: numberrequire(...)资产。Image实现一样,Android defaultSource上的debug模式不起作用。这是由于资产是从开发服务器发送的事实,但是RN的功能只知道如何从res加载它。resizeMode?: enumFastImage.resizeMode.contain均匀地扩展图像(维护图像的纵横比),以便图像的维尺寸(宽度和高度)等于或小于视图的相应维度(负填充)。FastImage.resizeMode.cover (默认值) - 均匀地扩展图像(维护图像的纵横比),以使图像的尺寸(宽度和高度)都等于或大于视图的相应维度(减填充)。FastImage.resizeMode.stretch独立的比例宽度和高度,这可能会改变SRC的纵横比。FastImage.resizeMode.center请勿缩放图像,保持中心。onLoadStart?: () => void当图像开始加载时调用。
onProgress?: (event) => void当图像加载时调用。
例如onProgress={e => console.log(e.nativeEvent.loaded / e.nativeEvent.total)}
onLoad?: (event) => void呼叫成功的图像获取。称为已加载图像的宽度和高度。
例如onLoad={e => console.log(e.nativeEvent.width, e.nativeEvent.height)}
onError?: () => void打电话给图像获取错误。
onLoadEnd?: () => void当图像完成加载时调用,无论是成功还是错误。
style一种反应的本地风格。支持使用borderRadius 。
fallback: boolean如果是true,则会退出使用Image 。在这种情况下,图像仍将以与FastImage相同的方式进行样式和布置。
tintColor?: number | string如果提供,将所有非透明像素的颜色更改为给定的颜色。
FastImage.preload: (source[]) => void预紧图像以后显示。例如
FastImage . preload ( [
{
uri : 'https://facebook.github.io/react/img/logo_og.png' ,
headers : { Authorization : 'someAuthToken' } ,
} ,
{
uri : 'https://facebook.github.io/react/img/logo_og.png' ,
headers : { Authorization : 'someAuthToken' } ,
} ,
] )FastImage.clearMemoryCache: () => Promise<void>清除内存缓存中的所有图像。
FastImage.clearDiskCache: () => Promise<void>清除磁盘缓存中的所有图像。
如果您使用此库有任何问题,请尝试进行故障排除的步骤,然后查看它们是否修复。
请按照以下说明进行示例应用程序运行。
该项目仅旨在支持最新版本的React Native。
这简化了项目的开发和测试。
如果您需要旧版本的新功能或错误修复,则可以为此项目提供。
该模块的想法来自Vovkasm的反应核心图像包。它还使用滑行和SDWebimage,但没有我需要的某些功能(优先级,标题)。
感谢@mobinni帮助概念化
MIT