首页 > 解决方案 > 如何在 componentDidMount 之前等待信息(currentUser)

问题描述

我有一个用户个人资料页面,当我刷新页面时,我的 redux 商店会清除,然后我再次从后端获取所有信息......但我的个人资料页面在我取回该信息之前开始安装。

我在我的“loggedInRoutes.js”中使用了这个函数。它将从我在 localStorage 中的 JWT 令牌中获取 currentUser,并将用户名和 ID 等保存在我的 Redux Store 中

  componentDidMount(){
    if (localStorage.length===0){
     this.props.history.push('/')
    }else{
      this.props.dispatchCurrentUser()
    }
  }

它在我的路由的顶层,带有我的路由渲染的 switch 语句在同一页面中。

在我的个人资料页面中。(我需要检查 currentUser 是否与我去的个人资料的用户是朋友,这就是为什么我从一开始就需要这两个信息)。

  componentDidMount(){
    this.props.fetchProfile(this.props.currentUser, this.props.match.params.userId)
    this.requestFriendshipFunction()
  }

如果我的 redux 商店中已经有 currentUser,则此方法有效,但如果我在配置文件页面上进行页面刷新,则配置文件页面中的 componentDidMount 在我获得该信息之前被调用,即使我正在调用“dispatchCurrentUser”在更多容器/父组件“loggedInRoutes”中。

将 currentUser 信息保存在本地存储中似乎是个坏主意,而且我不确定从这里去哪里。谢谢你。

标签: reactjsredux

解决方案


推荐阅读