Отображать сообщения получателя в this.state.message

Я использую response-native-gifted-chat (https://github.com/FaridSafi/react-native-gifted-chat) для создания интерфейса чата в моем приложении, я хочу загружать сообщения из своей базы данных, но как я могу указать это в response-native-gifted-chat, что получатель отправил сообщение сообщение не отправитель, т.е. до загрузки приложения сообщения загружаются в this.state.messages, по документации так и должно быть

 {
 _id: 1,
 text: 'My message',
 createdAt: new Date(Date.UTC(2016, 5, 11, 17, 20, 0)),
 user: {
 _id: 2,
 name: 'React Native',
 avatar: 'https://facebook.github.io/react/img/logo_og.png',
 },
 image: 'https://facebook.github.io/react/img/logo_og.png',
 // Any additional custom parameters are passed through
 }

В документации указано только, как указать сообщение отправителя, но не получателя, пожалуйста, как можно показать сообщение получателя, т.е.

  {
  _id: 2,
  text: 'Receiver's message',
  createdAt: new Date(Date.UTC(2016, 6, 11, 17, 20, 0)),
  user: {
   _id: 2,
  name: 'Receiver',
  avatar: 'https://facebook.github.io/react/img/logo_o3.png',
  },
  image: 'https://facebook.github.io/react/img/logo_o3.png',
  }

Ключ «_id» в «пользовательском» ключе объекта сообщения должен отличаться друг от друга.

Prakash Bokati 03.02.2021 11:03
1
1
1 150
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В https://github.com/FaridSafi/react-native-gifted-chat/blob/master/example/App.js есть пример, вы можете увидеть там функцию onReceive ().

 onReceive(text) {
    this.setState((previousState) => {
      return {
        messages: GiftedChat.append(previousState.messages, {
          _id: Math.round(Math.random() * 1000000),
          text: text,
          createdAt: new Date(),
          user: {
            _id: 2,
            name: 'React Native',
            // avatar: 'https://facebook.github.io/react/img/logo_og.png',
          },
        }),
      };
    });
  }

Вы можете запустить эту функцию таким образом при получении сообщения. (При изменении состояния)

Вы можете указать активного пользователя, добавив свойство в компонент GiftedChat:

<GiftedChat
        messages = {this.state.messages}
        onSend = {messages => this.onSend(messages)}
        user = {{
          _id: 1,
        }}
      />

Другие вопросы по теме