Javascript 反应-仅加载/显示当前用户帖子

Javascript 反应-仅加载/显示当前用户帖子,javascript,reactjs,web,frontend,jsx,Javascript,Reactjs,Web,Frontend,Jsx,我想在React中返回一条消息,显示每个用户登录时的所有帖子 问题是,现在,我的代码加载所有用户的所有帖子,只显示当前登录用户的帖子,但其他帖子占用屏幕空间。我想删除/不加载未登录的用户帖子 我认为问题在于,现在我在JSX中进行验证,但我必须在加载帖子的map()函数中进行验证,但我自己无法找到解决方案 这是我目前的代码: const posts = useSelector((state) => state.posts) const classes = useStyles()

我想在React中返回一条消息,显示每个用户登录时的所有帖子

问题是,现在,我的代码加载所有用户的所有帖子,只显示当前登录用户的帖子,但其他帖子占用屏幕空间。我想删除/不加载未登录的用户帖子

我认为问题在于,现在我在JSX中进行验证,但我必须在加载帖子的map()函数中进行验证,但我自己无法找到解决方案

这是我目前的代码:

  const posts = useSelector((state) => state.posts)
  const classes = useStyles()
  const user = JSON.parse(localStorage.getItem('profile'))

  return (
    <>
      <Grid className={classes.container} container alignItems='stretch' spacing={3}>
        {
          posts.map((post) => (
            <Grid key={post._id} item xs={12} sm={4}>
            {(user?.result?.googleId === post?.creator || user?.result?._id === post?.creator) && (
              <Post post={post} setCurrentId={setCurrentId}/>
            )}
            </Grid>
          ))
        }
      </Grid>
    </>
  )
const posts=useSelector((state)=>state.posts)
常量类=useStyles()
const user=JSON.parse(localStorage.getItem('profile'))
返回(
{
posts.map((post)=>(
{(用户?.result?.googleId==post?.creator | |用户?.result?_id==post?.creator)&&(
)}
))
}
)
这是输出示例:


有人能帮忙吗?非常感谢。

这里您正在渲染
网格
,然后检查条件,以便
网格
占用该空间

在渲染
网格之前,只需检查一行即可

尝试以下方法:

      {posts.map(
        post =>
          (user?.result?.googleId === post?.creator ||
            user?.result?._id === post?.creator) && (
            <Grid key={post._id} item xs={12} sm={4}>
              <Post post={post} setCurrentId={setCurrentId} />
            </Grid>
          )
      )}
{posts.map(
post=>
(用户?.result?.googleId==帖子?.creator)||
用户?.result?_id==post?.creator)和(
)
)}

哇,真管用!我真的很感激,非常感谢。现在我只需要纠正一个重复我文章的小错误。再次感谢!我很高兴为您提供帮助抱歉,Priyank,关于代码的一个问题:如果没有来自一个用户的帖子,那么该用户的第一篇帖子会在屏幕上复制,控制台会显示以下错误:遇到两个具有相同密钥的子项。密钥应该是唯一的,以便组件在更新过程中保持其标识。非唯一键可能会导致复制和/或忽略子项。如果我刷新页面,重复的帖子就会从屏幕上消失,只有正确的帖子才会出现。然后,对于下面的文章,代码可以完美地工作。你们知道我该如何控制吗?这个问题只会在用户添加帖子时发生,所以可能在帖子数组中它存储的是重复的?您可以通过控制台日志
posts
array进行检查吗?post数组使用两个具有相同键的元素进行复制,但实际上复制的元素不会加载到数据库中,如果我刷新页面,复制的元素将从数组中消除。也许这是我代码的状态问题?