开发者问题收集

未捕获的类型错误:无法读取未定义的属性(读取‘长度’)

2022-02-21
11814

我正在开发一个 React 应用,但我遇到了这个错误——“未捕获的类型错误:无法读取未定义的属性(读取‘长度’)”。如何修复这个问题? 我的代码是:

import React from "react";
import { Grid, CircularProgress } from "@material-ui/core";
import Post from "./Post/Post";
import useStyles from "./styles";
import { useSelector } from "react-redux";

const Posts = () => {
  const posts = useSelector((state) => state.Posts);
  const classes = useStyles();

  console.log(posts);
  return (!posts.length ? <CircularProgress/> :(
   <Grid className={classes.container} container alignItems="stretch" spacing={3}>
      {
        posts.map((post)=> (
              <Grid key={post._id} item xs={12} sm={6}>
                <Post post = {post} />
              </Grid>
        ))
      }

   </Grid>
 )
  );
};

export default Posts;
3个回答

错误表明 posts 的类型未定义。由于您从状态对象中的 Posts 获取该值,这意味着 Posts 未在您的状态下初始化。 尝试在您的初始状态对象中使用空数组 ([]) 初始化“Posts”。

Aquarius
2022-02-21

使用 !post || !post.length!posts?.length

Nick.Na
2022-02-21

您可以尝试类似这样的操作, !posts?.length > -1 ? 。因为您正在检查帖子数组是否为空。

Harshad Naik
2022-02-21