我正在构建一个运行良好的聊天应用程序,但是现在我想实现blue tick
功能来检查是否有一条消息seen or not
。我在此应用中使用socket.io
和react-native-gifted-chat
。我正在努力寻找一种方法来知道如何做到这一点。我访问了许多链接,但没有得到清晰的画面。 react-native-gifted-chat描述了为此使用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
..........
renderTicks={(message) => this.renderTicks(message)}
/>
此处 currentMessage 和 renderTicks 都将未定义。
请问我在这里做错了什么
OR
有人可以帮我看看renderTicks的示例代码。
本机版本= 0.62.2
谢谢。
答案 0 :(得分:0)
您需要从接收方更新消息对象,当接收方打开聊天屏幕组件时,可以使用useEffect函数在服务器上更改消息对象。像这样将read属性设置为true。套接字将自动通知发件人对象已更改,并且发件人将重新读取聊天列表,并将read属性设置为true。和天才的聊天将显示一个蓝色的勾。