В реакции, если вы хотите, чтобы что-то отображалось на экране, вам нужно поставить state
. Теперь у вас есть массив messages
на вашем state
, но данные, которые вы извлекаете из firebase, не добавляются в state
, и в результате ничего не обрабатывается.
Я не знаком с firebase как таковым, но я думаю, что основная идея должна быть примерно такой.
componentWillMount(){
let messagesRef = firebase.database().ref('messages');
messagesRef.on('child_added', snapshot => {
let message = { text: snapshot.val(), id: snapshot.key };
const messages = [...this.state.messages]; // copy state so not to mutate
messages.push(message);
this.setState({messages}); // this will tell react to re-render with the newly added data
console.log(message);
})
}