From: root Date: Thu, 18 Jun 2026 00:15:57 +0000 (+0800) Subject: 修复闪记重试输入框残留旧字符,确保所有输入框出现时为空 X-Git-Url: http://acesimba.cloud/gitweb/?a=commitdiff_plain;h=c6bf70b598164e623634a914f880918c3bdb6515;p=words.git 修复闪记重试输入框残留旧字符,确保所有输入框出现时为空 --- diff --git a/frontend/src/components/StudyMode.js b/frontend/src/components/StudyMode.js index 66122d1..13545a7 100644 --- a/frontend/src/components/StudyMode.js +++ b/frontend/src/components/StudyMode.js @@ -87,6 +87,7 @@ function StudyMode() { if (userInput.toLowerCase().trim() === currentWord.word.toLowerCase().trim()) { handleNext(); } else { + setUserInput(""); // 清空闪记输入框,确保回到闪记时为空 setPhase('correction'); setCorrectionInput(""); // 错误时读一遍正确发音提醒 @@ -97,6 +98,12 @@ function StudyMode() { } }; + // 抄写正确后回到闪记模式重试 + const retryFlashcard = () => { + setUserInput(""); + setPhase('flashcard'); + }; + if (!currentWord) return
加载中...
; // 阻止复制/剪切/粘贴/右键,防止单词被复制后粘贴作弊 @@ -176,14 +183,14 @@ function StudyMode() { onChange={(e) => setCorrectionInput(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter' && correctionInput === currentWord.word) { - setPhase('flashcard'); + retryFlashcard(); } }} placeholder="请在此抄写..." {...inputProps} /> {correctionInput === currentWord.word && ( - )} diff --git a/frontend/src/components/TestMode.js b/frontend/src/components/TestMode.js index 9c25584..5d5c52f 100644 --- a/frontend/src/components/TestMode.js +++ b/frontend/src/components/TestMode.js @@ -39,6 +39,7 @@ function TestMode() { setTotalCount(shuffled.length); setPhase('testing'); setUserInput(""); + setCopyInput(""); setIsRetesting(false); }, [words]); @@ -93,6 +94,7 @@ function TestMode() { if (currentIndex + 1 < queue.length) { setCurrentIndex(prev => prev + 1); setUserInput(""); + setCopyInput(""); setPhase('testing'); } else { // 本轮结束 @@ -114,6 +116,7 @@ function TestMode() { setCurrentIndex(0); setTotalCount(retestWords.length); setUserInput(""); + setCopyInput(""); setPhase('testing'); setIsRetesting(true); }, [wrongQueue]);