From c6bf70b598164e623634a914f880918c3bdb6515 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 18 Jun 2026 08:15:57 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E9=97=AA=E8=AE=B0=E9=87=8D?= =?utf8?q?=E8=AF=95=E8=BE=93=E5=85=A5=E6=A1=86=E6=AE=8B=E7=95=99=E6=97=A7?= =?utf8?q?=E5=AD=97=E7=AC=A6=EF=BC=8C=E7=A1=AE=E4=BF=9D=E6=89=80=E6=9C=89?= =?utf8?q?=E8=BE=93=E5=85=A5=E6=A1=86=E5=87=BA=E7=8E=B0=E6=97=B6=E4=B8=BA?= =?utf8?q?=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- frontend/src/components/StudyMode.js | 11 +++++++++-- frontend/src/components/TestMode.js | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) 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]); -- 2.43.0