response-native-gifted-chat, показывающий одно и то же сообщение несколько раз - PullRequest
0 голосов
/ 15 декабря 2018

Я использую react-native-gifted-chat в своем приложении для реагирования на ошибки.Как я показал на этом изображении, одно и то же сообщение отображается несколько раз, и место message: Yes getting new msg также отличается от его фактического положения.Моя проблема такая же как эта .Может кто-нибудь, пожалуйста, помогите мне решить эту проблему.

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

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Я получил решение моего вопроса.@ Рон, ты прав, но в моем случае проблема в другом.Я решил это путем изменения моего формата параметров.Он принимал другой формат, и я проходил по-другому, поэтому они противоречили друг другу.Вот решение, которое может пригодиться другим.

parse = snapshot => {
    const { timestamp: numberStamp, text } = snapshot.val();
    const { key: _id } = snapshot;
    const createdAt = moment(snapshot.val().createdAt, "DD/MM/YYYY hh:mm:ss");

     const user = { };
     var temp_data = snapshot.val()
     if(snapshot.val().name == this.state.temp_logged_name) {
         user._id = 1; 
         user.name = temp_data.name;
         user.avatar = temp_data.avatar;
     }
     const message = {
        _id,
        createdAt,
        text,
        user,
     };
     return message;
};
0 голосов
/ 15 декабря 2018

Причин может быть две:

1) Каждому сообщению должен быть присвоен уникальный идентификатор, поэтому просто используйте пакет uuidv4 npm и добавьте его к _id prop объекта.

Пример:

messages: GiftedChat.append(previousState.messages, {
              _id: uuidv4(), // or use  Math.round(Math.random() * 1000000)
              text: text,
              createdAt: new Date(),
              user: {
                _id: 2,
                name: "React Native",
                avatar: "https://placeimg.com/140/140/any"
              },
              image: attachment
            })

2) Вторая возможность может быть на шлюзе, который вы используете для инициирования чата между пользователями.Таким образом, некоторые шлюзы имеют известные проблемы повторения сообщения несколько раз.Можно сравнивать строки каждый раз, когда новое сообщение получено и отправлено на экран чата, однако делать это не рекомендуется.

...