Не знаю, в чем причина, но я исправил ее, следуя инструкциям на этой странице. Кажется, все нормализовано, выполнив полную переустановку
Почему бы вам не получить доступ
{this.props.movie.title}
Как
{this.props.movie[0].title}
Мне кажется более логичным. И это может быть решением.
поправьте меня, если я ошибаюсь.
И не могли бы вы также console.log {this.props.movie}
Причина в том, что this.props.movies не определен при первом рендере), пока вы не сделаете вызов fetchMovies).
Попробуйте сначала проверить, существует ли он так:
class HomePage extends Component {
componentWillMount() {
this.props.fetchMovies();
}
render() {
if (this.props.movies && this.props.movies[0]) {
const movie = this.props.movies[0];
return (
<div>
<Banner movies={this.props.movies} movie={movie} />
<Movies movies={this.props.movies} />
</div>
);
} else {
<div>Loading...</div>;
}
}
}
Изначально фильмы могут быть пустым массивом, и, поскольку вы обращаетесь к нулевой позиции индекса, вы должны проверить ее длину перед доступом к нулевому индексу.
Измените
const movie = this.props.movies[0];
на
if(this.props.movies.length){
const movie = this.props.movies[0];
console.log(movie);
}
Поскольку фильмы всегда являются массивом, поэтому проверка их длины напрямую решит проблему