如何显示从 fetch() 方法返回的图像 - react-native

Posted

技术标签:

【中文标题】如何显示从 fetch() 方法返回的图像 - react-native【英文标题】:How to display image returned from fetch() method - react-native 【发布时间】:2020-05-20 04:13:54 【问题描述】:

我有以下代码从 API 中检索图像

await fetch('https://example.com/api/user/fileaccess', 
    method: 'POST',
    headers: 
      Accept: '*',
      'Content-Type': 'application/json',
      'token':'xxxxxxxxxxxxxxxxxxxxxxxx'
    ,
    body:  JSON.stringify("applicantid": xxxx, "user_secret": "xxxxxxxxxxx","fileid":xxxxx),
  ).then((response) => 
    console.log(response);
  ); 

请求已完成,我已登录控制台。

"_bodyBlob": "_data": "__collector": [对象], "blobId": “xxxxx-xxxx-xxx-xxxx-xxxxx”,“偏移”:0,“大小”:953328, “_bodyInit”:“_data”:“__collector”:[对象],“blobId”: “xxxxx-xxxx-xxxx-xxxx-xxxxx”,“偏移”:0,“大小”:953328, “标题”:“地图”:“缓存控制”:“max-age = 2592000”,“连接”: “Keep-Alive”、“content-type”:“image/jpeg”、“date”:“2020 年 2 月 4 日星期二 格林威治标准时间 10:34:14", "过期": "2020 年 3 月 5 日星期四 10:34:14 格林威治标准时间", “保持活动”:“超时=5,最大值=100”,“编译指示”:“公共”,“服务器”: “Apache”,“传输编码”:“分块”,“ok”:true,“status”:200, “statusText”:未定义,“类型”:“默认”,“url”: "https://example.com/api/user/fileaccess"

我的问题是,如何在我的应用中将此数据显示为图像?是否可以将此数据转换为 base64?

【问题讨论】:

那个网址有你的图片吗? 是的,我可以在邮递员中看到它 【参考方案1】:

如果这是图片网址,您可以按照以下方式进行操作 将图像存储在您的状态

this.setState(image:res.url)

然后<Image source=uri:this.state.image/>

【讨论】:

【参考方案2】:

您需要先将其提取到 json 或 text 或其他一些数据中,然后才能对响应进行任何操作。

根据Mozilla docs,设置一个基本的获取请求非常简单。看看下面的代码:

fetch('http://example.com/movies.json')
  .then((response) => 
    return response.json();
  )
  .then((myJson) => 
    console.log(myJson);
  );

所以,修改你的代码如下:

fetch('https://example.com/api/user/fileaccess', 
    method: 'POST',
    headers: 
      Accept: '*',
      'Content-Type': 'application/json',
      'token':'xxxxxxxxxxxxxxxxxxxxxxxx'
    ,
    body:  JSON.stringify("applicantid": xxxx, "user_secret": "xxxxxxxxxxx","fileid":xxxxx),
  )
.then(response => response.json())
.then((result) => 
     console.log("Your intended result is: " , result)
); 

添加response.json() 只是假设服务器正在返回 JSON 数据。 如果没有,您也可以根据您的服务器实现尝试以下方法。

数组缓冲区() 斑点() json() 文本() 表单数据()

【讨论】:

以上是关于如何显示从 fetch() 方法返回的图像 - react-native的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Fetch 在前端显示通过 HTTP (Node.js) 发送的图像?

如何从 Haneke 的异步 fetch 方法返回值

从 fetch() 返回 html 并显示给用户

如何显示从 API 响应中接收到的图像?

如何从 fetch 中获取响应的标头

SQL fetch 数组中的弹出图像显示相同的图像