[英]react-native: creating image from base64 string for iOS and Android (in react-native-elements list)
我试图通过REST调用在DB中显示动态(react-native-elements)列表中的图标,该调用将图标作为base64编码的字符串传递(即这里使用jHipster / swagger完成)。
它必须适用于iOS和Android。
我认为这应该是一个非常常见的用例,但事实证明有点挑战......
到目前为止我尝试了什么:
static addImageFromBase64(base64ImageData, success, failure)
请看这里
@platform ios
) var base64Icon = 'data:image/png;base64,iVBORw0KGgoAAAANS ... <Image source={{uri: base64Icon}} ... />
那么有什么好方法可以将base64图像字符串转换为Android反应原生应用程序吗?
或者是否有一个很好的实践或库来解决这个问题(以完全不同的方式从动态数据库通过REST API动态获取图标到反应原生应用程序中)?
事实上它是有效的,我只是总是结合一些不同的缺陷,并添加了React原生元素,以增加混乱...
感谢martwetzels通过高度/宽度提示引导我朝着正确的方向前进。
如果其他人对图像和'data:'
方案有问题,这些是我遇到的主要障碍:
对于React Native <Image>
:
<Image>
使用'data:'
,至少你必须提供样式的宽度和高度 Image
组件的参考中 ,也没有在任何地方提到'data:'
方案 所以这是React Native <Image>
一个工作示例:
var base64Icon = 'data:image/png;base64,iVBORw0KGgoAAAANS ... <Image style={{width: 50, height: 50}} source={{uri: base64Icon}}/>
对于react-native-elements <List>中的图像
avatar
道具会带一个url
- leftIcon
道具是来自包含图书馆的图标,例如仅限材料图标 - 或者用于单独的React Native元素 avatar
道具可以有一个可选的单独的avatarStyle
,但默认会自动缩放图像 <Image>
的leftIcon
prop将再次需要一个样式来显示图片,至少具有宽度和高度 React Native Elements <List>
一个工作示例,其中leftIcon
prop以<Image>
为元素( style
必需!):
<List> { myItems.map((item, i) => ( <ListItem key={i} title={item.name} leftIcon={<Image style={{width: 35, height: 35}} source={{uri: item.base64Icon}}/>} /> )) } </List>
具有avatar
道具的React Native Elements <List>
的工作示例(没有style
,但是可选的 avatarStyle
):
<List> { myItems.map((item, i) => ( <ListItem key={i} title={item.name} avatar={{uri: item.base64Icon}} // optional: avatarStyle={{width: 50, height: 50}} /> )) } </List>
到目前为止,这一切都非常明显,一旦被理解......对不起,问这个愚蠢的问题;-)
因此,因为我所有的困惑都与文档有关,我将为React Native和Elements文档提出一些PR。
编辑:PR已合并,并且文档更改了关于带有“data:”uri架构的图像,同时指定大小的需要是公开的! 在以下位置搜索“data:”:
http://facebook.github.io/react-native/docs/images.html
http://facebook.github.io/react-native/docs/image.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.