[英][TypeError: undefined is not an object (evaluating 'dataMoviesGenres.results[randomIndex]')]
我在 React-Native 项目中有这个错误,
[TypeError: undefined is not an object (evaluating 'dataMoviesGenres.results[randomIndex]')]
我想从 URL 中获取数据,但是以下行有问题:
const randomItem = dataMoviesGenres.results[randomIndex];
URL 返回我 JSON,数组结果中有 20 部电影,我想在这 20 部电影中得到一个随机电影,所以我放了一个随机数来得到结果[randomNumber}
async toggleStart() {
this.setState({
started: !this.state.started
});
const randomPage = Math.floor(Math.random() * 30) + 1;
const randomIndex = Math.floor(Math.random() * 20) + 1;
if (this.state.started) {
try {
const dataMoviesGenres = await axios.get(
`https://api.themoviedb.org/3/discover/movie?api_key=${API_KEY}&language=fr-FR&include_adult=false&with_genres=${this.state.categorieChosenId}&sort_by=popularity.desc&page=${randomPage}`
);
const randomItem = dataMoviesGenres.results[randomIndex]; <-- PROBLEM WITH THIS
console.log("dataMoviesGenres ", dataMoviesGenres);
this.setState({
randomMovie: randomItem
});
} catch (error) {
console.log("error ", error);
}
}
console.log("API KEY ", API_KEY);
console.log("randomPage ", randomPage);
console.log("randomIndex ", randomIndex);
}
如果您想查看 JSON 响应的详细信息,这里是 URL
https://api.themoviedb.org/3/discover/movie?api_key=381e8c936f62f2ab614e9f29cad6630f&language=fr-FR&include_adult=false&with_genres=28&sort_by=popularity.desc&page=1
根据axios文档中的响应模式,您正试图以错误的方式访问数据。 该错误告诉您在dataMoviesGenres
常量中没有称为results
的字段。
只需将该行替换为
const randomItem = dataMoviesGenres.data.results[randomIndex];
实际结果进入data
字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.