javascript - 在 React 中显示来自 API 的图像
问题描述
我正在尝试从我的 API 显示图像。到目前为止我使用的代码似乎不起作用,在图像的 src 中它只显示字符串而不是图像 ie <img src="{data.home[0].image}" alt="image">
。
到目前为止,我的代码是:
import React, { Component } from 'react';
import '../main/main.css';
class Main extends Component {
constructor() {
super();
this.state = {
name: 'React',
awsApiData: [],
};
}
componentDidMount() {
console.log('app mounted');
/*global fetch */
fetch('https://onelbip0e6.execute-api.eu-west-2.amazonaws.com/livestage/xxxx')
.then(data => data.json())
.then(data => this.setState({ awsApiData: data }, () => console.log(data)));
}
render() {
const data = this.state.awsApiData;
return (
<div className="main-content container">
{(data && data.home) &&
<div><h2>{data.home[0].title}</h2><br /><p>{data.home[0].body}</p>
<img src="{data.home[0].image}" alt="image"></img>
</div>
}
</div>
);
}
}
export default Main;
解决方案
您正在将字符串的值分配给 img src
,因此它只会将输出作为字符串提供。
您需要使用花括号将 JavaScript 表达式嵌入到属性中。
所以尝试改变
<img src="{data.home[0].image}" alt="image">
to{}
(删除大括号周围的引号)
<img src={data.home[0].image} alt="image">
在属性中嵌入 JavaScript 表达式时,不要在花括号周围加上引号。您应该使用引号(用于字符串值)或花括号(用于表达式),但不能在同一属性中同时使用。
推荐阅读
- barcode - 如何检查 Code 128 条码是否为 EAN 128
- algorithm - 为什么假设乘以 n 的时间复杂度是常数?
- javascript - 突出显示/错误不适用于“远程”验证
- node.js - 无法读取未定义的属性“连接”。已安装依赖项
- python-3.x - 求解具有一些边界条件的矩阵方程
- ios - iOS以编程方式更改设置字体
- react-native - 带有 TabNavigation 的标题反应导航
- javascript - JavaScript 算法脚本
- angular - 错误类型错误:无法读取 Angular 7 拖放中未定义的属性“长度”
- android - 如何在android应用程序中放入大量数据?