【发布时间】:2019-07-31 00:00:20
【问题描述】:
我想从 The Movie DB api 中检索数据并只显示 4 部电影,但由于某种原因它什么也没得到。
import React, {Component} from 'react';
import './App.css';
class App extends Component{
state = {
popularMovies: null
}
async retrievePopularMovies(){
const url = 'https://api.themoviedb.org/3/movie/popular?api_key=KEY_HERE';
const response = await fetch(url);
const data = await response.json();
this.setState({popularMovies: data.results});
}
render(){
return(
<div>
<h3>Popular Movies</h3>
<div>
{this.state.popularMovies[0].title}
</div>
</div>
)
}
}
export default App;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
它应该在屏幕上返回 ID 为 0 的电影的标题,但我得到的唯一错误是:
TypeError: 无法读取 null 的属性“0”
这里指出了问题->> {this.state.popularMovies[0].title}
【问题讨论】:
-
请注意,API 密钥是有效的,我可以在浏览器中检索数据
-
你真的在执行
retrievePopularMovies方法吗? -
异步不会自动执行吗?
-
检查您的网址和您正在制作的方法
-
@userct 不,你不需要像
componentDidMount这样的方法运行它
标签: reactjs