У меня странная проблема с firebase. Realtime DB.problem с компонентом чата.
componentDidMount(){
this.renderMessages();
}
renderMessages(){
rdb.ref("chats/"+this.props.id).orderByChild("time").on('child_added', (snapshot)=>{
if(snapshot.exists)
{
this.setState({messages [...this.state.messages,snapshot.val()]})
}
})
}
, затем сопоставьте это состояние и передайте данные другим компонентам, и все отлично работает на первый запуск.
утешенный объект При первом запуске [это массив объектов]
0: Object { message: "hello", read: false, sender: "Shan", …
1: Object { message: "Hai Shan", read: false, sender: "AashiqOtp", … }
2: Object { message: "hi", read: false, sender: "AashiqOtp", … }
, когда я go возвращается и повторно вошел в компонент, то он показывает только последний объект массива ie
0: Object { message: "hi", read: false, sender: "AashiqOtp", … }
в чем проблема? Кто-нибудь может мне помочь? Заранее спасибо.
ОБНОВЛЕНО
Я использую прослушиватель событий ".once", проблем нет, но так как это компонент чата, мне нужно всегда слушать событие.