React Native Image无法使用特定URL

ctehm74n  于 2023-10-23  发布在  React
关注(0)|答案(6)|浏览(138)

我有下面的代码,其中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”,

dced5bon

dced5bon1#

Andrés的答案有些正确,但它没有解决问题的确切原因,那就是iOS的App Transport Security。iOS默认情况下不允许纯文本请求(http),因此您需要定义一个URL的“白名单”,允许这些URL覆盖此特定保护机制。您已经设置了该列表,以便您的应用可以在开发期间连接到localhost,因此只需向其中添加新条目即可。你可以在answer中看到如何做到这一点。当然,这只有在您事先知道URL列表的情况下才有效,这可能不适合您的需求。在这种情况下,请查看this article

wfsdck30

wfsdck302#

uri只支持https。在Android中,它应该可以很好地使用http或https。
您将找到更多信息here

eulz3vhy

eulz3vhy3#

伙计们,图像组件有一个问题,如果第一次使用source={{uri : 'some link'}}初始化组件,它可能无法工作(至少对我来说,当我从Firebase存储的HTTPS URL中获取图像时)。诀窍是你必须触发对源 prop 的更改,比如首先你需要将源保留为source={undefined},然后更改为source={{uri : 'some link'}}。希望能帮到一些人

zpjtge22

zpjtge224#

除了HTTPS的问题之外,请确保设置Imagewidthheight

igetnqfo

igetnqfo5#

我如何使图像源与http或https网址的工作是通过重置我使用的android模拟器。
您可以通过打开android studio清除模拟器,然后单击顶部栏的工具选项卡选择AVD管理器,一旦它打开选择您正在使用的模拟器,右键单击它,然后选择擦除数据。一旦这个过程完成,在react-native项目$ npx react-native run-android的根目录下打开cmd或terminal

z8dt9xmd

z8dt9xmd6#

我也有同样的问题。对我来说,我设置样式,宽度,高度,minWidth,minHeight。工作正常.

相关问题