我正在为 YouTube 上的 React App Netflix 克隆做后续教程。我遇到的问题是让控制台记录发送到电影数据库 API 的 GET 请求的结果。
这是我的 Banner.js 文件中的代码块
import React, { useEffect, useState } from "react";
import "./Banner.css";
import axios from "./axios";
import requests from "./Requests";
function Banner() {
const [movie, setMovie] = useState([]);
useEffect(() => {
async function fetchData() {
const request = await axios.get(requests.fetchNetflixOriginals);
setMovie(
request.data.results[
Math.floor(Math.random() * request.data.results.length - 1)
]
);
return request;
}
fetchData();
}, []);
console.log(movie)
这是我的 Requests.js 文件中的代码块:
const API_KEY = process.env.REACT_APP_TMDB_API_KEY
const requests = {
fetchNetflixOriginals: `/discover/tv?api_key=${API_KEY}&
with_networks=213`,
}
export default requests;
当我记录 request.data.results 的结果时,我确实收到了一组对象,这些对象是来自 axios.get() 请求的电影/电视节目。
我不再收到错误:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'length')
剩下的问题是,当我控制台记录“电影”时,我想在 Math.floor 随机确定的索引处查看电影对象的属性。相反,它只记录 Math.floor 生成的整数/数字。