如何从reactjs中的json响应字段加载图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从reactjs中的json响应字段加载图像相关的知识,希望对你有一定的参考价值。

我正在使用Twitch API,它提供了一个API调用,它响应图像和游戏名称。我想在下面显示图像和游戏名称,但是图片没有加载:

PicsNotLoading:

enter image description here

 render() {
    const { game } = this.props

    return (
      <div className="GameImage">
          <img src= {game.box_art_url} alt=""/>
          <p>{game.name} </p>
      </div>
    )
  }
}

export default GameImage
答案

如果URL有效,您的代码将起作用,但您使用的图像是404ing。我根本不熟悉Twitch API,但是看看documentation,你似乎需要在路径中替换{width}{height}参数。

您可以在有效负载中更清楚地看到这一点,因为URL不像浏览器404请求时那样编码。

{
  "data":
  [{
     "id": "493057",
     "name": "PLAYERUNKNOWN'S BATTLEGROUNDS",
     "box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/PLAYERUNKNOWN%27S%20BATTLEGROUNDS-{width}x{height}.jpg"
  }]
}

这就是你可以实现这样的方法,将width方法中的heightformatImageUrl变量替换为你想要的高度和宽度,它将生成一个有效的URL。

class GameImage extends React.Component

 formatImageUrl(url) {
    const width = '400'
    const height = '400'

    return url.replace('{width}', width).replace('{height}', height)
 }

 render() {
    const { game } = this.props

    return (
      <div className="GameImage">
          <img src={this.formatImageUrl(game.box_art_url)} alt=""/>
          <p>{game.name} </p>
      </div>
    )
  }
}

export default GameImage

这是格式化的URL:

https://static-cdn.jtvnw.net/ttv-boxart/PLAYERUNKNOWN%27S%20BATTLEGROUNDS-400x400.jpg

希望有所帮助!

以上是关于如何从reactjs中的json响应字段加载图像的主要内容,如果未能解决你的问题,请参考以下文章

使用json从django后端获取并显示reactjs中的图像

如何将聊天中的加载图像替换为使用 ReactJS 上传到 Firebase 存储的图像?

从 Promise(ReactJS 和 Axios)中提取图像数据

如何从 JSON 文件加载 React-Table 中的图像

ReactJS:如何在单选按钮中使用布尔值?

ReactJS:Rest API JSON 响应:如何解析