React 后端接口返回数据类型为image怎么接

问题(解决方法在下面):

开发联调过程中,一个请求设备封面的接口 ,返回的数据格式是个图片

接口要求信息:
  • get请求,带两个id的参数
  • 带token
  • 我要把这照片放到页面中img标签中显示
    在这里插入图片描述

在这里插入图片描述

解决方法:

写个组件

import React, { useEffect, useState } from 'react'
import { cache } from '@cloud-app-dev/utils'
import noData from '@src/assets/imgs/nocz.png'
//这里主要意义就是取token, cache这个是封装的一个函数
const getHeader = () => ({ Authorization: cache.getCache('token', 'session') });

function ScreenShot({ deviceId, channelId }) {
    const [state, setState] = useState({ url: "" })
    useEffect(() => {
        console.log(channelId,'channelId')
        if (!channelId && !deviceId ) {
            return
        }
        //在这里来拼接口的url                                                                                                           带上token
        fetch(`/api/v1/dig/devices/screenshot?device_id=${deviceId}&channel_id=${channelId}`, { headers: getHeader() }).then(async res => {
            if(res.status===400){
                return
            }
            //返回的是流,用fetch的内置函数blob()转一下
            const blob = await res.blob()
            //再转为URL
            const url = URL.createObjectURL(blob)
            //存!
            setState(old => ({ ...old, url }))
        })
    }, [deviceId, channelId])
                             //这里直接这样用就可以了,就能够再页面中显示了
    return state.url?<img src={state.url}></img>:<img style={{ width: '100%', height: '100%' }} src={noData} alt="" />
}


export default ScreenShot


使用:
<ScreenShot channelId={item.channel_id} deviceId={device_id}/>

总结:
1.对fetch,blob不了解
2.解决问题方向错误,由于请求用的都是‘fetch-like-axios’,也不知道fetch就有内置的blob函数,通过new Blob()绕了一圈转成功了,但是拼到img标签上图片没显示,就一直纠结可能转错了
3.下去多了解一下http请求,以及请求方式,fetch,blob等

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
雷达图React后端接口是一种用于传输雷达图数据的后端接口。雷达图是一种用于展示多个维度数据之间关系的图表,常用于比较不同维度的数据,如评估个人的能力或企业的绩效等。React后端接口可以通过使用特定的API和数据格式来传递雷达图数据。 为了实现雷达图React后端接口,可以考虑以下步骤: 1. 设计API:首先需要设计后端接口的API,包括URL、请求方法和参数等。针对雷达图,可以设定获取雷达图数据的API,如`/radar`,并指定请求方法为GET。 2. 数据传输格式:确定数据传输的格式,可以选择使用JSON格式。后端接口可以根据请求参数获取相应的雷达图数据并以JSON格式返回前端。 3. 数据处理和验证:后端接口需要对收到的请求进行处理和验证。对于雷达图数据,可以对收到的参数进行解析和验证,确保数据格式正确。 4. 数据查询和返回:根据请求参数,后端接口可以从数据库或其他数据源中查询相应的雷达图数据。然后将查询到的数据进行处理,并以JSON格式返回前端。 5. 错误处理:在后端接口中,应该考虑错误处理机制,对于异常情况要返回适当的错误码和错误信息。 6. 接口文档:最后,为了方便前端开发人员使用后端接口,可以编写详细的接口文档,包括API的使用说明、参数说明和响应格式等。 总的来说,雷达图React后端接口是一个用于传输雷达图数据的后端接口,可以通过设计API、确定数据传输格式、数据处理和验证、数据查询和返回、错误处理和编写接口文档等步骤来实现。这样可以实现前后端数据的交互,使得React前端能够展示和处理雷达图数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值