优化MessageRecord组件的自动滚动逻辑,确保在新消息到达且没有视频状态变化时才滚动到底部,同时修复了对消息长度的引用以提高性能。

This commit is contained in:
超级老白兔
2025-11-21 10:34:55 +08:00
parent a2b0041490
commit fe12f78c1d

View File

@@ -347,6 +347,7 @@ const MessageRecord: React.FC<MessageRecordProps> = ({ contract }) => {
useEffect(() => {
const prevMessages = prevMessagesRef.current;
const prevLength = prevMessages.length;
const hasVideoStateChange = currentMessages.some((msg, index) => {
// 首先检查消息对象本身是否为null或undefined
@@ -384,8 +385,9 @@ const MessageRecord: React.FC<MessageRecordProps> = ({ contract }) => {
}
});
// 只有在没有视频状态变化时才自动滚动到底部
if (!hasVideoStateChange && isLoadingData) {
if (currentMessages.length > prevLength && !hasVideoStateChange) {
scrollToBottom();
} else if (isLoadingData && !hasVideoStateChange) {
scrollToBottom();
}