Причин может быть две:
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) Вторая возможность может быть на шлюзе, который вы используете для инициирования чата между пользователями.Таким образом, некоторые шлюзы имеют известные проблемы повторения сообщения несколько раз.Можно сравнивать строки каждый раз, когда новое сообщение получено и отправлено на экран чата, однако делать это не рекомендуется.