首页 > 解决方案 > 反应:无法读取未定义的属性“地图”

问题描述

代码在这里

我正在尝试做的事情:

尝试在使用 Axios 获取时将电影列表显示到应用程序右侧的区域。

我不确定这是一个传递道具问题,还是其他问题。关于发生了什么的任何提示?

import React from "react";
import Card from "@material-ui/core/Card";
import Grid from "@material-ui/core/Grid";

import "../Movie/_movie.scss";

const Movie = props => {
  return (
    <div>
      <Grid container>
        <Grid item xs={12} md={12}>
          <Card>
            <h3>Movies should show up here</h3>
            <ul>
              {props.movies.map(movie => (
                <li key={movie.id}>
                  <img
                    src={`https://image.tmdb.org/t/p/w185/${movie.poster_path}`}
                  />
                  <h3>{movie.original_title}</h3>
                  <p>Date: {movie.release_date}</p>{" "}
                  <p>Rating: {movie.vote_average}/10</p>
                  <p>{movie.overview}</p>
                </li>
              ))}
            </ul>
          </Card>
        </Grid>
      </Grid>
    </div>
  );
};

export default Movie;

标签: javascriptreactjsaxios

解决方案


最有可能发生的是您的render函数在 api 调用有时间完成之前运行,因此props.moviesundefinedrender需要它的时候。您可以做的是给props.movies一个空数组的默认值,[]或者您可以先检查是否props.movies在映射之前通过doing 定义props.movies && props.movies.map


推荐阅读