反应组件用户未处于状态

时间:2018-11-15 21:57:28

标签: javascript reactjs react-redux

请注意以下几点:

 componentDidMount(){
    this.props.requestUser(this.props.match.params.userID).then(res => 
      {
        this.pageOwner = res.user;
      debugger;
     })

  }

为什么我的this.pageOwner仍返回未定义?我一直在努力让用户进入我的用户个人资料可以访问的状态。

2 个答案:

答案 0 :(得分:1)

如果您要访问this.pageOwner,则需要在this.props.requestUser()异步功能完成后进行访问。您当前正在将用户吸引到componentDidMount()中,因此您的render()最初会将this.pageOwner视为undefined,直到异步调用完成。

此外,最好将异步调用的结果存储在state中,以便在填充值后重新呈现组件。

答案 1 :(得分:0)

正如@colin所说,将其放在this.state中。如果您在render()函数中遇到错误,请按照以下步骤进行渲染:

constructor() {
 super();
 this.state = {
   pageOwner: null
 }
}

componentDidMount() {
 this.props.requestUser(this.props.match.params.userID).then(res => 
 {
  this.setState({pageOwner: res.user});
  debugger;
 })
}

render() {
 if(this.state.pageOwner) 
   return ( ... )
 else 
   return null;
}