android - 动态设置 React Native <Image/> 的 uri

标签 android ios react-native react-native-flatlist

我正在尝试构建一个左侧有一个图标的 FlatList(与任何联系人应用程序非常相似),并且我正在尝试根据元素名称动态加载图像

<Image
    style={styles.image}
    source={{uri: `./assets/${this.props.name}.png`}}
/>

这是 React Native 不允许的,如他们的 Image 所述文档。 有什么解决方法吗?

最佳答案

如果你的图像在你的项目中(例如 Assets 文件夹)你不能动态创建,你最多只能选择一个数组,如下所示:

var icons = [ require('image!my-icon-active') ,require('image!my-icon-inactive')];
<Image
    style={styles.image}
    source={icons[1]}
/>

但您可以将图像保存在文件夹中,并使用“file://”或“data://”从本地存储中读取,就像您从 Web 读取一样,可以是动态链接:

let uri = 'file://'+this.state.pathToResources+'/'+href;
<Image
          style={{width: 400, height: 400}}
          resizeMode='contain'
          source={{uri}}
        />

您可以使用库 https://github.com/itinance/react-native-fs 为您从智能手机的本地磁盘准备好,但您需要管理高度和宽度。

更多信息请阅读https://facebook.github.io/react-native/docs/images.html#uri-data-images

关于android - 动态设置 React Native <Image/> 的 uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48685458/

相关文章:

android - 如果我从测试版转到产品,没有人可以为 Google Play 商店中的新应用撰写评论

java - sqlite 中的列类型 NONE

ios - 类型“任何”的值没有成员'valueForKey'-Swift 3

ios - 如何从 iOS 中的 JSON 响应中提取图像

javascript - 我在 React 应用程序中使用了 axios,但无法从提供的链接获取用户数据

javascript - React Native - 渲染没有返回任何内容

安卓动画GIF

iphone - 来自 uiwebview 的高分辨率屏幕截图/或 pdf

react-native - react native : How to remove the current stack navigator from the navigation-stack

Android以太网使用dhcp配置IP