Компонент React, возвращающий не может прочитать свойство '__reactInternalInstance $ null после попытки доступа к массиву

Вот проблемный компонент в вопросе.

const UserList = React.createClass({
  render: function(){
    let theList;
    if(this.props.data){
      theList=this.props.data.map(function(user, pos){
        return (
          <div className="row user">
            <div className="col-xs-1">{pos}</div>
            <div className="col-xs-5">{user.username}</div>
            <div className="col-xs-3">{user.recent}</div>
            <div className="col-xs-3">{user.alltime}</div>
          </div>
        );
      }, this);
    } else {
     theList = <div>I don't know anymore</div>;
    }
    console.log(theList);
    return (
      theList
    );
  }
});

Всякий раз, когда я пытаюсь вернуть {theList}, я получаюНе удается прочитать свойство '__reactInternalInstance $ mincana79xce0t6kk1s5g66r' со значением NULL ошибка. Однако если я заменю {theList} на статический html, console.log выведет правильный массив объектов, которые мне нужны. Что касается ответов, я попытался вернуть и {theList}, и theList, но это не помогло.

В обоих случаях console.log сначала печатает [], что, как я полагаю, связано с тем, что componentDidMount содержит мой ajax-вызов для получения json с сервера и еще не сработал до первого render (). Я попытался проверить, что this.props.data имеет значение null, но это не помогает.

Вот родительский компонент, если он помогает:

const Leaderboard = React.createClass({
  getInitialState: function(){
    return ({data: [], mode: 0});
  },
  componentDidMount: function(){
    $.ajax({
      url: 'https://someurlthatreturnsjson',
      dataType: 'json',
      cache: false,
      success: function(data) {
        this.setState({data: data});
      }.bind(this),
      error: function(xhr, status, err) {
        console.error('https://someurlthatreturnsjson', status, err.toString());
      }.bind(this)
    });
  },
  render: function(){
    return (
      <div className="leaderboard">
        <div className="row titleBar">
          <img src="http://someimage.jpg"></img>Leaderboard
        </div> 
        <HeaderBar />
        <UserList data={this.state.data}/>
      </div>
    );
  }
}); 

Ответы на вопрос(6)

Ваш ответ на вопрос