as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

react-native-fast-image版本3.0.0

react-native-fast-image版本3.0.0

@amazon-devices/react-native-fast-image版本3.0.0在Vega上提供对于react-native-fast-image的支持,后者提供高性能React Native图像组件。

React Native的Image组件像浏览器一样处理图像缓存。如果服务器为图像返回正确的缓存控制标头,您会在浏览器中看到内置的缓存行为。

您可能会注意到:

  • 闪烁
  • 缓存未命中
  • 从缓存进行加载时性能低下
  • 总体性能低下

FastImageImage的替代物,它解决了除网页之外的其他平台上的这些问题。

此库由应用部署,可供适用于Vega的React Native应用使用,无需单独的安装过程。此库自动链接,您的应用在运行时会链接到该库。该库保证仅与为之构建的适用于Vega的React Native版本兼容。

升级应用的适用于Vega的React Native版本时,可以考虑升级其库依赖关系的最佳实践。

有关此库和API参考的更多信息,请查看文档。 README.md(仅提供英文版)。

安装

  1. package.json文件中添加JavaScript库依赖项。

    复制到剪贴板。

    "dependencies": {
       ...
       "@amazon-devices/react-native-fast-image": "~3.0.0"
    }
    
  2. 使用npm 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}
    />
)

API参考

组件

属性 描述 默认值 支持
source 要加载的远程图像的来源。 (无) ✅ 是
source.uri 加载图像的远程URL,例如https://facebook.github.io/react/img/logo_og.png。 (无) ✅ 是
source.priority FastImage.priority.low - 低优先级
FastImage.priority.normal - 普通优先级
FastImage.priority.high - 高优先级
FastImage.priority.normal ✅ 是
resizeMode FastImage.resizeMode.contain - 均匀缩放图像(保持宽高比),使图像的宽度和高度等于或小于视图的相应尺寸(减去内边距)。确保整个图像可见,但可能会留下空白区域。
FastImage.resizeMode.cover - 均匀缩放图像(保持宽高比),使图像的宽度和高度等于或大于视图的相应尺寸(减去内边距)。确保容器已完全填满,这可能会裁剪部分图像。
FastImage.resizeMode.stretch - 单独缩放宽度和高度,这可能会改变源的宽高比。
FastImage.resizeMode.center - 不缩放图像,保持居中。
FastImage.resizeMode.cover ✅ 是
onFastImageLoadStart 当图像开始加载时调用。 (无) ✅ 是
onFastImageLoad 成功提取图像时调用。使用加载的图像的宽度和高度调用。 (无) ✅ 是
onFastImageError 在图像提取错误时调用。 (无) ✅ 是
onFastImageLoadEnd 在图像完成加载时调用,无论加载成功还是出错。 (无) ✅ 是
source.headers 允许为经过身份验证的请求传递键值对的对象。   ❌ 否
source.cache 设置缓存策略。   ❌ 否
tintColor 为图标和图像着色。   ❌ 否
defaultSource 加载主图像源时显示占位符图像。   ❌ 否
onFastImageProgress 跟踪图像加载的进度。依赖项Image.onProgress有问题。   ❌ 否

方法

方法 描述
preLoad 预加载图像以便稍后显示。
clearMemoryCache 从内存缓存中清除所有图像。
clearDiskCache 从磁盘缓存中清除所有图像。

已知问题和限制

向后兼容问题

  • v0.12起的操作系统版本与amzn/react-native-fast-image(npm程序包)2.0.1726598878及更低版本不兼容。

  • v0.12+操作系统(npm程序包的旧版本)上运行应用时,该应用会在启动时崩溃:

    Volta:Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'FastImageTurboModule' could not be found.验证此名称的模块是否已在原生二进制文件中注册。

    要避免出现这种崩溃,您必须按照最新版本的@amazon-devices/react-native-fast-image重新构建应用:

    1. 检查您应用的package.json不会对旧版本的fast-image进行硬编码。

      使用SemVar版本^3.0.0,以便应用获得最新的补丁。

    2. 删除package-lock.json可移除任何锁定的fast-image版本。

      如果您依赖此文件来锁定其他依赖项,则可以手动删除package-lock.json@amazon-devices/react-native-fast-image的条目。

    3. 删除node_modules文件夹,这样npm就不会获取旧的缓存版本。
    4. 重建应用。

支持的版本

程序包版本 基于 @amazon-devices/react-native-kepler版本
3.0.x 8.6.3 2.0.x

支持的第三方库和服务


Last updated: 2025年10月3日