Реагировать на пользователя компонента не в состоянии - PullRequest
0 голосов
/ 16 ноября 2018

Считайте следующее:

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

  }

Почему мой this.pageOwner по-прежнему возвращает undefined? Я старался изо всех сил, чтобы вывести пользователя в состояние, в котором мой профиль пользователя действительно может получить доступ.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Как сказал @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;
}
0 голосов
/ 16 ноября 2018

Если вы пытаетесь получить доступ к this.pageOwner, это необходимо сделать после завершения асинхронной функции this.props.requestUser(). В настоящее время вы получаете пользователя в componentDidMount(), поэтому ваш render() будет первоначально видеть this.pageOwner как undefined, пока асинхронный вызов не будет завершен.

Кроме того, может быть лучше сохранить результат вашего асинхронного вызова в state, чтобы ваш компонент повторно рендерился после заполнения значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...