Chat

最近更新时间:2025-09-12 18:14:53

我的收藏

概述

Chat 聊天容器组件是聊天功能的核心容器组件,负责管理聊天界面的整体布局和状态。组件会根据当前活跃会话的状态来决定是否渲染聊天内容,当没有活跃会话时显示占位符内容。组件内部使用 ChatProvider 提供聊天上下文,为子组件提供会话相关的状态和方法。
Chat 组件具有自动检测是否有激活的会话的能力,如果当前没有任何激活的会话,将会展示 PlaceholderEmpty 的内容。

功能特性

会话状态管理:自动检测当前是否有激活的会话。
空状态处理:当没有激活的会话时,支持自定义空状态占位符组件。
响应式布局:默认使用 flex 布局,且默认的 flex-directioncolumn

Props 速查表

字段
类型
默认值
描述
React.ReactNode
null
无活跃会话时的占位符组件
className
string
undefined
自定义 CSS 类名
style
React.CSSProperties
undefined
自定义内联样式

Props 详细介绍

PlaceholderEmpty

类型:React.ReactNode
描述:当没有活跃会话时显示的占位符组件,用于提供友好的空状态提示,默认值为 null,不渲染任何内容。

示例:展示欢迎页

import React from 'react';
import { Chat } from '@tencentcloud/chat-uikit-react';

// 简单的占位符组件
const EmptyPlaceholder: React.FC = () => (
<div className="empty-placeholder">
<div className="empty-icon">💬</div>
<h3>暂无会话</h3>
<p>请选择一个会话开始聊天</p>
</div>
);

const ChatApp: React.FC = () => {
return (
<div className="chat-app">
<Chat
PlaceholderEmpty={<EmptyPlaceholder />}
className="main-chat"
>
<ChatHeader />
<MessageList />
<MessageInput />
</Chat>
</div>
);
};

export default ChatApp;
示例效果:


className

类型:string
详细说明:自定义 CSS 类名,用于添加额外的样式定制,会与组件默认的样式类合并,默认值为 undefined

style

类型:React.CSSProperties
详细说明:自定义内联样式对象,用于精确控制组件的外观样式,默认值为 undefined

children

类型:React.ReactNode
详细说明:子组件内容,通常包含聊天相关的子组件例如 ChatHeader、MessageList、MessageInput 等,默认值为 undefined

示例: 完整的聊天界面组合

import React from 'react';
import {
Chat,
ChatHeader,
MessageList,
MessageInput
} from '@tencentcloud/chat-uikit-react';

const ChatPage: React.FC = () => {
return (
<div className="chat-page">
<Chat className="chat-container">
{/* 聊天头部组件 */}
<ChatHeader />
{/* 消息列表组件 */}
<MessageList className="message-list" />
{/* 消息输入组件 */}
<MessageInput
className="message-input"
placeholder="请输入消息..."
/>
</Chat>
</div>
);
};

export default ChatPage;
说明:
当业务场景不需要使用 ConversationList 组件时,请使用 useConversationListState hook 中的 setActiveConversation 函数来手动激活会话。详情请参考:仅集成聊天

扩展阅读:Chat 组件的渲染逻辑





相关文档

交流与反馈

如遇任何问题,可联系 官网售后 反馈,享有专业工程师的支持,解决您的难题。