javascript - × TypeError: Cannot read property 'original' of undefined React
问题描述
我正在尝试访问从 API 返回的数据的属性,我可以访问一些属性,但是当我尝试返回数据的图像属性时,我不断收到无法读取未定义的属性,图像属性是一个对象在数据中。这是下面的代码。
class GifDetail extends React.Component {
constructor(props) {
super(props);
this.state = {
gifImages: [],
};
}
async componentDidMount() {
const url = `https://api.giphy.com/v1/gifs/${this.props.match.params.id}?api_key=GuN18iG06KnZHBSYQR***Cw2YCZHN37`;
const response = await fetch(url);
const data = await response.json();
console.log(data);
this.setState({ gifImages: data.data });
}
render() {
const { gifImages } = this.state;
return (
<div>
<img
src={`${this.state.gifImages.images.fixed_height_small_still.url}`}
width="100"
className="img-fluid"
/> //this line is returning undefined
<p>{gifImages.images.original}</p> // this is the line that is returning undefined
<p>{gifImages.username}</p>
<p>{gifImages.url}</p>
<p>{gifImages.title}</p>
</div>
);
}
}
export default GifDetail;
解决方案
以这种方式应用检查 gifImages.images && gifImages.images.original
:
代替:
<p>{gifImages.images.original}</p>
写:
{ gifImages.images && <p>{gifImages.images.original}</p> }
推荐阅读
- c# - EF Core SQLITE - SQLite 错误 19:'UNIQUE 约束失败
- python - 将 Python 添加到 Windows 路径
- javascript - String .replace() does not work with '$' symbol
- ios - 将 alpha 设置为 0.0 后无法点击 UIButton,即使重置为 1.0
- openid - OpenID Connect 授权码字符串的格式是什么?
- vhdl - 在 VHDL 中使用 VARIABLE 时从不使用输入问题
- django - 如何在 Django admin 的字段中生成时间戳作为默认值
- powershell - 使用 Credentials 和 ArgumentList 以另一个用户身份启动进程
- unity3d - Unity Server GameObject 销毁
- ruby-on-rails - Rails/Sidekiq/Devise:这项工作是由 Sidekiq 处理的吗?我怎么能确定?