react redux中用户提要中没有帖子时如何显示消息?

Posted

技术标签:

【中文标题】react redux中用户提要中没有帖子时如何显示消息?【英文标题】:How to show the message when there are no posts in user feed in react redux? 【发布时间】:2020-08-23 23:27:17 【问题描述】:

现在,如果我转到显示帖子列表的提要。因此,当没有发布帖子时,我想显示 未找到帖子 消息。我通过mapStateToProps 收到isFetchingposts

posts是reducer中的一个数组字段,初始状态为空。因此,当没有发布帖子时,数组为空。

我如何显示消息?

  render() 
    const  isFetching, posts   = this.props

    return isFetching ? (
      <p>Fetching....</p>
    ) : (
      <div>
        posts &&
          posts.map((post) => 
            return <Cards key=post._id post=post />
          )
      </div>
    )
    ```

【问题讨论】:

【参考方案1】:

与检查 isFetching 的方式相同,但使用 posts.length != 0

return isFetching ? (
    <p>Fetching....</p>
) : (
    <div>
        (posts && posts.length != 0) ?
            posts.map((post) =>  
                return <Cards key=post._id post=post />
            ) : <p>No posts found</p>
    </div> 
)

【讨论】:

【参考方案2】:

在这种情况下,您可以使用condition operators。

return isFetching ? (
      <p>Fetching....</p>
    ) : (
      <div>
         posts 
            ? ( 
                posts.map((post) => 
                return <Cards key=post._id post=post />
               ): (
               <div> No posts found</div>
               )
          )
        
      </div>
    )

【讨论】:

【参考方案3】:

您可以使用if else 根据您的要求进行渲染。

render() 
  const  isFetching, posts  = this.props

  if (isFetching) 
    return <p>Fetching...</p>;
   else if (!posts && posts.length) 
    return <p>No posts found</p>
   else 
    return (
      <div>
        posts.map(post => <Cards key=post._id post=post />)
      </div>
    );
  

注意:也可以使用三进制,但我想,if 在这里看起来更易读。

【讨论】:

以上是关于react redux中用户提要中没有帖子时如何显示消息?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 和 Redux 中保持用户登录,使用 JWT 表达后端应用程序并且没有像 redux-persist 这样的包?

如何在没有 Redux 的情况下将状态保存在本地存储 React 中?

防止多个帖子在react / mongoose中

React:如何加载和渲染外部 html 文件?

利用 React/Redux/React-Router 4/webpack 开发大型 web 项目时如何按需加载

React演示组件无法使用反应容器从redux商店读取值