diff --git a/Cunkebao/src/pages/pc/ckbox/components/ChatWindow/index.tsx b/Cunkebao/src/pages/pc/ckbox/components/ChatWindow/index.tsx index 4521f4a7..e1bfb7ca 100644 --- a/Cunkebao/src/pages/pc/ckbox/components/ChatWindow/index.tsx +++ b/Cunkebao/src/pages/pc/ckbox/components/ChatWindow/index.tsx @@ -44,13 +44,13 @@ const ChatWindow: React.FC = ({ const prevMessages = prevMessagesRef.current; const hasVideoStateChange = currentMessages.some((msg, index) => { + // 首先检查消息对象本身是否为null或undefined + if (!msg || !msg.content) return false; + const prevMsg = prevMessages[index]; - if (!prevMsg || prevMsg.id !== msg.id) return false; + if (!prevMsg || !prevMsg.content || prevMsg.id !== msg.id) return false; try { - // 检查msg.content和prevMsg.content是否为null或undefined - if (!msg.content || !prevMsg.content) return false; - const currentContent = typeof msg.content === "string" ? JSON.parse(msg.content) @@ -533,17 +533,22 @@ const ChatWindow: React.FC = ({ // 用于分组消息并添加时间戳的辅助函数 const groupMessagesByTime = (messages: ChatRecord[]) => { - return messages.map(msg => ({ - time: formatWechatTime(msg?.wechatTime), - messages: [msg], - })); + return messages + .filter(msg => msg !== null && msg !== undefined) // 过滤掉null和undefined的消息 + .map(msg => ({ + time: formatWechatTime(msg?.wechatTime), + messages: [msg], + })); }; const renderMessage = (msg: ChatRecord) => { + // 添加null检查,防止访问null对象的属性 + if (!msg) return null; + const isOwn = msg?.isSend; return (
= ({ {!isOwn && (
{msg?.senderName}
)} - {parseMessageContent(msg.content, msg)} + {parseMessageContent(msg?.content, msg)}