Я довольно новичок, чтобы реагировать на нативные, и сейчас я разрабатываю приложение для чата / форума Недавно у меня возникли проблемы с попыткой создать раздел прямого сообщения для моего приложения. Я не знаю, как подключить мою базу данных к моему интерфейсу. Вот вопрос:
Я использую базу данных mongodb, которая состоит из двух коллекций: сообщений и разговоров.
Каждый диалог имеет уникальный Id, а каждое сообщение имеет chatId, соответствующий разговору, которому он принадлежит.
В моем собственном приложении реакции, внутри компонента Direct Message, у меня есть flatlist
, который отображает различные чаты.
Когда компонент Direct Message willMount()
, я вызываю асинхронную функцию getChats()
, которая выбирает чаты из базы данных, частью которой является текущий пользователь. Полученные чаты затем устанавливаются в состояние.
Затем, внутри getChats()
, после того, как чаты установлены в состояние, у меня есть for loop
, который в основном перебирает весь массив this.state.chats
, а затем вызывает функцию getMessages(this.state.chats[i].id)
, которая выбирает все сообщения, которые разделяют те же чаты, что и чаты. Выбранные сообщения затем добавляются к this.state.messages
.
Наконец, flatlist
с реквизитом,
keyExtractor={(item)=>item._id}
data ={this.state.chats}
renderItem={({item})=>this._renderChats(item)}
extraData = {this.state}
, отображает чаты.
Я хочу иметь возможность показывать содержимое последних сообщений и отправителя в чате View
, однако ошибка, указывающая, что содержимое сообщений не определено.
Я думаю, это может быть связано с тем фактом, что сообщения не устанавливаются в состояние до отображения чатов, но я не уверен.
Как бы вы решили это? Вы бы поменяли интерфейс или бэкэнд? Вы бы поменяли оба? Должен ли я поделиться своим кодом, чтобы было легче понять проблему?
Заранее спасибо.