I don't know if this answer is going to get to you and you could answer it but I have a problem similar to that one. My structure consists on: -Messages.js (list of conversations with people) -Chat.js (the corresponding chat with a conversation selected in Messages) -Fire.js (the object in charge of connecting and retrieving information from firebase database). When I make the call to get the messages of a chat, this call is asynchronous, so the setState must be done afer it has finished as you mention. I didn't though of your possibility, but I implemented and at first I was so happy because the console.log() messages that I wrote were showing in the command console. The thing is that React complains and doesn't work because it says that there was a timer error. I pass de cons self = this; as a parameter to the function of Fire. When it finishes the call to database and all, in the finally() function that it provides, I do the self.setState(()=>({messages: newMessages})); This does not update the render, I do not know why because it just can't find the setState method, so I made another approach, that is passing the self, but calling a function like: Chat: changeState = (newMessages) =>{ this.setState(()=>({messages: newMessages})); } Fire: .finally(()=>{ console.log("We are here now"); chatSelf.changeState(newMessages); }); Do you know of any approach that can make me not having a timer exception?? Ricardo Memoria