3 回答
TA贡献1810条经验 获得超4个赞
我运行了你的代码,你得到的错误是Cannot read property 'map' of undefined.
首先,您不在getMovies任何地方使用,您的电影数据在Movies组件中不可用
其次,您应该将电影初始化为空数组。
您的Movies组件代码应如下所示:
import React, { Component } from "react";
import { getMovies } from "../services/fakeMovieService";
class Movies extends Component {
state = { movies: [] };
componentDidMount() {
this.setState({ movies: getMovies() });
}
render() {
return (
<table className="table">
<thead>
<tr>
<th>Title</th>
<th>Genre</th>
<th>Stock</th>
<th>Rate</th>
</tr>
</thead>
<tbody>
{this.state.movies.map(movie => (
<tr>
<td>{movie.title}</td>
<td>{movie.genre.name}</td>
<td>{movie.numberInStock}</td>
<td>{movie.dailyRentalRate}</td>
</tr>
))}
</tbody>
</table>
);
}
}
export default Movies;
TA贡献1834条经验 获得超8个赞
在stateof 中Movie Component,您需要添加movies数组,例如
state = {
movies:[]
};
然后更新电影状态。之后,您可以movies像这样映射数组
<tbody>
{this.state.movies.map(movie => (
<tr>
<td>{movie.title}</td>
<td>{movie.genre.name}</td>
<td>{movie.numberInStock}</td>
<td>{movie.dailyRentalRate}</td>
</tr>
))}
</tbody>
添加回答
举报
