Как реализовать функцию синей галочки, такую ​​как Whatsapp, в приложении React Native Chat

Я создаю приложение чата, которое работает нормально, но теперь я хочу реализовать функцию blue tick, чтобы проверить, было ли сообщение seen or not. Я использую socket.io и react-native-gifted-chat в этом приложении. Я изо всех сил пытаюсь найти способ узнать, как это сделать. Я посещаю много ссылок, но не вижу четкой картины. response-native-gifted-chat описывает использование для этого функции renderTicks, но я не могу понять ее реализацию.

renderTicks

  renderTicks = (message) => {
    const {currentMessage, renderTicks, user} = this.props;
    if (renderTicks && currentMessage) {
      return renderTicks(currentMessage);
    }
    if (currentMessage && user && currentMessage.user._id !== user._id) {
      return null;
    }
    if (
      currentMessage &&
      (currentMessage.sent || currentMessage.received || currentMessage.pending)
    ) {
      return (
        <View style={styles.content.tickView}>
          {!!currentMessage.sent && (
            <Text style={[styles.content.tick, this.props.tickStyle]}>✓</Text>
          )}
          {!!currentMessage.received && (
            <Text style={[styles.content.tick, this.props.tickStyle]}>✓</Text>
          )}
          {!!currentMessage.pending && (
            <Text style={[styles.content.tick, this.props.tickStyle]}>????</Text>
          )}
        </View>
      );
    }
    return null;
  };

GiftedChat

<GiftedChat
        ..........
        renderTicks={(message) => this.renderTicks(message)}
/>

Здесь currentMessage и renderTicks становятся неопределенными.

Что я здесь делаю не так, будьте добры просветите.

OR

Может ли кто-нибудь помочь мне с примером кода renderTicks.

react-native version = 0.62.2

Заранее спасибо.


person Adeel Iftikhar    schedule 25.08.2020    source источник


Ответы (1)


Вам необходимо обновить объект сообщения со стороны получателя, когда получатель открывает компонент экрана чата, вы можете использовать функцию useEffect, которая изменяет объект сообщения на сервере. Как будто он устанавливает для свойства read значение true. Сокеты будут автоматически уведомлять отправителя об изменении объекта, и отправитель будет обновлять список чата, при этом для свойства чтения установлено значение true. А у подаренного чата появится синяя галочка.

person Vigoss fridge    schedule 28.10.2020
comment
Привет, я столкнулся с той же проблемой с GiftedChat, я не могу изменить состояние сообщения, свойство чтения из сокета отображается как неопределенное ... не могли бы вы подсказать, что может быть не так? - person NBaua; 12.03.2021