diff --git a/src/pages/ProcessDetailPage.tsx b/src/pages/ProcessDetailPage.tsx index 42a560f..356587f 100644 --- a/src/pages/ProcessDetailPage.tsx +++ b/src/pages/ProcessDetailPage.tsx @@ -124,7 +124,7 @@ export function ProcessDetailPage() { return () => { clearLongPressTimer(); clearAutoAdvanceTimer() } }, [clearLongPressTimer, clearAutoAdvanceTimer]) - // 切换到某个练习项时重置输入状态 + // 切换到某个练习项时重置输入状态,并聚焦第一个输入框 useEffect(() => { if (!isPracticeMode || !currentPracticeItem) return setUserInput(new Array(currentPracticeItem.name.length).fill('')) @@ -132,6 +132,13 @@ export function ProcessDetailPage() { setLastErrorTimestamp(null) setShowAnswer(false) setInputLocked(false) + // 延迟聚焦,等 DOM 更新后再聚焦第一个输入框 + setTimeout(() => { + const firstInput = document.querySelector( + '.practice-input-area input' + ) as HTMLInputElement + firstInput?.focus() + }, 150) }, [isPracticeMode, currentPracticeItem]) useEffect(() => { latestInputRef.current = userInput }, [userInput]) @@ -643,13 +650,23 @@ export function ProcessDetailPage() { />