如何在componentDidMount之前等待信息(currentUser)

时间:2018-11-11 18:37:15

标签: reactjs redux

我有一个用户个人资料页面,当我刷新页面时,我的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,在获得该信息之前也会被调用更多容器/父组件“ loggedInRoutes”中的“ dispatchCurrentUser”。

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

0 个答案:

没有答案