【发布时间】:2018-02-05 10:54:42
【问题描述】:
我有以下代码,它返回错误:
"无法读取未定义的属性'albumCover'
基于第 24 行的代码。
import React, {Component} from 'react';
import albumData from './../data/albums';
class Album extends Component {
constructor(props) {
super(props);
const album = albumData.find( album => {
return album.slug === this.props.match.params.slug
});
this.state = {
album: album
};
}
render() {
return (
<section className ="album">
<section id="album-info">
<img id="album-cover-art" src={this.state.album.albumCover} /> <- error
<div className="album-details">
<h1 id="album-title"></h1>
<h2 className="artist"></h2>
<div id="release-info"></div>
</div>
</section>
</section>
);
}
}
export default Album
我的理解是,这是由于“this”的上下文设置不正确造成的,但据我所知,这段代码应该可以正确执行。谁能告诉我为什么我会收到错误,以及如何为“this”设置正确的上下文?
【问题讨论】:
-
您是否在渲染中记录了相册以确保已设置 this.state.album?
-
渲染后返回前尝试 console.log(this.state) 并验证状态
标签: javascript reactjs