我有下面的代码,其中Image组件包含两个Image组件。
<View style={styles.container} >
<Image
style={{width: 50, height: 50}}
source={{uri: 'https://facebook.github.io/react/img/logo_og.png'}}
/>
<Image
style={{width: 50, height: 50}}
source={{uri: 'http://lghttp.24811.nexcesscdn.net/80B00B/qpb/media/catalog/product/cache/11/image/439x334/9df78eab33525d08d6e5fb8d27136e95/q/w/qw_neverdonejoggers_p_.png'}}
/>
</View>
对于第一个github URL,它会按照预期正确呈现img徽标。然而,对于第二个图像,它不会呈现源代码:qw_neverdonejoggers_p_.png
这导致我的结论是错误的URL,然而,点击正确的URL加载Img:
http://lghttp.24811.nexcesscdn.net/80B00B/qpb/media/catalog/product/cache/11/image/439x334/9df78eab33525d08d6e5fb8d27136e95/q/w/qw_neverdonejoggers_p_.png
我试图在这里复制这个问题,https://rnplay.org/apps/_dQXXw,但它正确地呈现了两个图像。
所以它只在本地我的计算机上,由于某种原因,我可以渲染第二个图像?
使用:“react”:“15.4.1”,“react-native”:“^0.39.2”,
6条答案
按热度按时间dced5bon1#
Andrés的答案有些正确,但它没有解决问题的确切原因,那就是iOS的App Transport Security。iOS默认情况下不允许纯文本请求(http),因此您需要定义一个URL的“白名单”,允许这些URL覆盖此特定保护机制。您已经设置了该列表,以便您的应用可以在开发期间连接到localhost,因此只需向其中添加新条目即可。你可以在answer中看到如何做到这一点。当然,这只有在您事先知道URL列表的情况下才有效,这可能不适合您的需求。在这种情况下,请查看this article。
wfsdck302#
uri
只支持https。在Android中,它应该可以很好地使用http或https。您将找到更多信息here。
eulz3vhy3#
伙计们,图像组件有一个问题,如果第一次使用
source={{uri : 'some link'}}
初始化组件,它可能无法工作(至少对我来说,当我从Firebase存储的HTTPS URL中获取图像时)。诀窍是你必须触发对源 prop 的更改,比如首先你需要将源保留为source={undefined}
,然后更改为source={{uri : 'some link'}}
。希望能帮到一些人zpjtge224#
除了
HTTPS
的问题之外,请确保设置Image
的width
和height
igetnqfo5#
我如何使图像源与http或https网址的工作是通过重置我使用的android模拟器。
您可以通过打开android studio清除模拟器,然后单击顶部栏的工具选项卡选择AVD管理器,一旦它打开选择您正在使用的模拟器,右键单击它,然后选择擦除数据。一旦这个过程完成,在react-native项目$ npx react-native run-android的根目录下打开cmd或terminal
z8dt9xmd6#
我也有同样的问题。对我来说,我设置样式,宽度,高度,minWidth,minHeight。工作正常.