未捕获的类型错误:无法读取未定义的属性(读取‘长度’)
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