繁体   English   中英

[TypeError: undefined is not an object(评估'dataMoviesGenres.results[randomIndex]')]

[英][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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM