This commit is contained in:
Junhui Chen 2025-08-07 01:25:32 +08:00
parent b3b31baab2
commit 12c3eb0901
2 changed files with 21 additions and 14 deletions

View File

@ -136,24 +136,24 @@ export default function AskScreen() {
// 使用新的WebSocket流处理hook使用实时模式 // 使用新的WebSocket流处理hook使用实时模式
const { subscribeToWebSocket } = useWebSocketStreamHandler({ const { subscribeToWebSocket } = useWebSocketStreamHandler({
setUserMessages, setUserMessages,
isMounted: isMountedRef.current, isMounted: true, // 传递静态值hook内部会使用ref跟踪
enableBatching: false // AskScreen使用实时模式 enableBatching: false // AskScreen使用实时模式
}); });
// useFocusEffect( useFocusEffect(
// useCallback(() => { useCallback(() => {
// isMountedRef.current = true; isMountedRef.current = true;
// // 订阅WebSocket消息 // 订阅WebSocket消息
// const unsubscribe = subscribeToWebSocket(); const unsubscribe = subscribeToWebSocket();
// return () => { return () => {
// // 取消订阅和执行清理 // 取消订阅和执行清理
// unsubscribe(); unsubscribe();
// cleanup(); cleanup();
// }; };
// }, [subscribeToWebSocket, cleanup]) }, [subscribeToWebSocket, cleanup])
// ); );
// 创建动画样式 // 创建动画样式
const welcomeStyle = useAnimatedStyle(() => { const welcomeStyle = useAnimatedStyle(() => {
@ -218,6 +218,13 @@ export default function AskScreen() {
} }
}, [sessionId]) }, [sessionId])
); );
// 组件卸载时的清理
useEffect(() => {
return () => {
cleanup();
};
}, [cleanup]);
return ( return (
<View style={[styles.container, { paddingTop: insets.top, paddingBottom: insets.bottom }]}> <View style={[styles.container, { paddingTop: insets.top, paddingBottom: insets.bottom }]}>

View File

@ -44,7 +44,7 @@ export default function SendMessage(props: Props) {
// 使用新的WebSocket流处理hook启用批量处理模式 // 使用新的WebSocket流处理hook启用批量处理模式
const { subscribeToWebSocket, cleanup } = useWebSocketStreamHandler({ const { subscribeToWebSocket, cleanup } = useWebSocketStreamHandler({
setUserMessages, setUserMessages,
isMounted: isMountedRef.current, isMounted: true, // 传递静态值hook内部会使用ref跟踪
enableBatching: true, enableBatching: true,
renderInterval: RENDER_INTERVAL renderInterval: RENDER_INTERVAL
}); });