未捕获(承诺)TypeError:无法读取未定义的属性(读取“长度”)-Netflix Clone 2.0 REACT.JS

问题描述 投票:0回答:0

我正在为 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 生成的整数/数字。

reactjs react-hooks axios netflix themoviedb-api
© www.soinside.com 2019 - 2024. All rights reserved.