Javascript 反应不';当呈现返回另一个组件时,t调用componentWillMount

Javascript 反应不';当呈现返回另一个组件时,t调用componentWillMount,javascript,reactjs,Javascript,Reactjs,我有以下组件 const Dashboard = React.createClass({ getInitialState(){ return { user: JSON.parse(localStorage.getItem('user')) }; }, componentWillMount(){ var self = this; $.get({ url: 'http://127.0.0.1:8080/v1/rooms',

我有以下组件

const Dashboard = React.createClass({
  getInitialState(){
    return {
      user: JSON.parse(localStorage.getItem('user'))
    };
  },

  componentWillMount(){
    var self = this;
    $.get({
      url: 'http://127.0.0.1:8080/v1/rooms',
      headers: {
        'Auth-Token': self.state.user.backendAccessToken
      },
      success: function(data){
        var rooms = []
        for (var i in data) {
            rooms.push({id: data[i].uid, content: data[i]})
          }
        self.setState({rooms: rooms});
        console.log(rooms);
      }
    })
  },

  render(){
    return(
      <RoomList rooms={this.state.rooms} />
      // <div></div>
    );
  }
});

export default Dashboard;
const Dashboard=React.createClass({
getInitialState(){
返回{
user:JSON.parse(localStorage.getItem('user'))
};
},
组件willmount(){
var self=这个;
美元({
网址:'http://127.0.0.1:8080/v1/rooms',
标题:{
“身份验证令牌”:self.state.user.backendAccessToken
},
成功:功能(数据){
var房间=[]
用于(数据中的var i){
push({id:data[i].uid,内容:data[i]})
}
self.setState({rooms:rooms});
控制台、日志(房间);
}
})
},
render(){
返回(
// 
);
}
});
导出默认仪表板;

从“React”导入React;
从“/RoomLink”导入RoomLink;
const RoomList=React.createClass({
render:function(){
var roomList=this.props.rooms.map(函数(房间){
返回()
});
返回(
{roomList}
);
}
});
导出默认房间列表;
运行时,我得到
RoomList.js:21未捕获类型错误:无法读取未定义的
的属性“map”,并且
控制台.log
和我的成功回调从未打印。但是当我呈现一个空div而不是
RoomList
组件时,会调用该组件willmount,我可以在日志中看到响应。

似乎React没有调用组件willmount

ajax调用需要时间,同时子组件在道具室中呈现为未定义,需要处理这种情况

  render: function() {
    var roomList = (this.props.rooms || []).map(function(room) {
    return (<RoomLink room={room} />)
  });
   return (
    <div>
    { roomList }
    </div>
 );
}
render:function(){
var roomList=(this.props.rooms | |[]).map(函数(房间){
返回()
});
返回(
{roomList}
);
}

render(){
返回(
// 
);
}

ajax调用需要时间,同时子组件在道具室中呈现为未定义,需要处理这种情况

  render: function() {
    var roomList = (this.props.rooms || []).map(function(room) {
    return (<RoomLink room={room} />)
  });
   return (
    <div>
    { roomList }
    </div>
 );
}
render:function(){
var roomList=(this.props.rooms | |[]).map(函数(房间){
返回()
});
返回(
{roomList}
);
}

render(){
返回(
// 
);
}
render(){
  return(
   <RoomList rooms={this.state.rooms||[]} />
   // <div></div>
  );
}