Одаренный чат пропускает _id для сообщения - React Native - PullRequest
0 голосов
/ 05 февраля 2019

Итак, я создаю часть функциональности чата для моего приложения.Я использую sendbird sdk вместе с одаренным чатом для пользовательского интерфейса.

Мои сообщения не отображаются, и я продолжаю получать следующее предупреждение.'GiftedChat: _id отсутствует для сообщения' '

messages show blank up blank

Теперь я трижды проверил, что мой sendbird настроен правильно, я вошел в системуправильно, а также создали соответствующий канал.Они оба работают.

Просматривая журнал моих сообщений, которые они публикуют, как показано.

 { messageType: 'user',
 messageId: 2122453749,
  etc ... }

Но они публикуются как messageId , Должен ли яизменить структуру этого?Если да, то как мне это сделать, поскольку sendbird pre уже настроил это?Или я могу изменить это в одаренном чате?

Пожалуйста, взгляните на фрагменты моего кода ниже.

getChannelMetaData(channel) {
if (channel) {
  const self = this;
  const messagesQuery = channel.createPreviousMessageListQuery();

  messagesQuery.load(50, true, (messages, error) => {
    if (error) {
      console.error(error);
    }
    this.setState({
      messages,
    });
  });
}
}


  onSend(messages = []) {
const handle = this;
const sb = SendBird.getInstance();
const { channel } = this.props.navigation.state.params;

this.setState(previousState => {
  channel.sendUserMessage(messages[0].text, (response, error) => {
    if (!error) {
      handle.getChannelMetaData(channel);
    }
  });
  console.log(this.state.messages);
  return { messages: GiftedChat.append(previousState.messages, messages) };
});
}


     <GiftedChat
      messages={this.state.messages}
      renderBubble={bubble}
      loadEarlier
      renderLoadEarlier={loadEarlier}
      isAnimated
      keyboardShouldPersistTaps="never"
      onSend={messages => this.onSend(messages)}
      user={{
        _id: userID,
      }}
      showUserAvatar
    />

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Если вы не следуете формату, указанному ими, выдается это предупреждение.Итак, что мы сделали для этого ... мы просто настроили наш объект JSON из массива сообщений чата, как показано ниже

let giftedChatMessages = chatMessages.map((chatMessage) => {
      let gcm = {
        _id: chatMessage.id,
        text: chatMessage.get("text"),
        createdAt: chatMessage.get("createdAt"),
        user: {
          _id: chatMessage.get("user").id,
          name: chatMessage.get("user").get("name"),
          avatar: chatMessage.get("user").get("avatarUrl")
        }
      };
      return gcm;
    });
0 голосов
/ 06 февраля 2019

Вы должны использовать этот формат:

{   
      _id: 1,
      text: 'message',
      createdAt: new Date(),
      user: {
        _id: 2,
        name: 'nickname',
        avatar: 'YourimageURL',
      },
    },
...