瀏覽代碼

fixed quiz timer update issue

develop
Ajay_S 3 年之前
父節點
當前提交
3e65733617
共有 3 個文件被更改,包括 16 次插入17 次删除
  1. +1
    -1
      src/mockData/QuizDetails.ts
  2. +13
    -12
      src/pages/quiz/Question.tsx
  3. +2
    -4
      src/pages/quiz/Quiz.tsx

+ 1
- 1
src/mockData/QuizDetails.ts 查看文件

@@ -23,7 +23,7 @@ const Quiz_Details: QuizDetails[] = [
],
answer: ["alert('Hello World');"],
result: false,
timeLimit: 25
timeLimit: 10
},
{
question: "is javascript",


+ 13
- 12
src/pages/quiz/Question.tsx 查看文件

@@ -14,23 +14,26 @@ interface OwnProp {
let timeout: NodeJS.Timeout;

const Question: React.FC<OwnProp> = (props) => {

const [seconds, setSeconds] = useState<number>(props.timeLimit);
const [duration, setDuration] = useState<number>(props.timeLimit);
const displaySeconds = seconds % 60;

useEffect(() => {
setSeconds(props.timeLimit);
setDuration(props.timeLimit);
}, [props.questionNumber]);

useEffect(() => {
setTimeout(() => {
if (seconds <= 0) {
props.updateQuestionNumber();
console.log(props.timeLimit);
setSeconds(5)
} else {
if (seconds > 0) {
setSeconds(seconds - 1);
} else {
props.updateQuestionNumber();
}
}, 500);
}, 1000);
}, [seconds]);



const renderTime = () => {
return (
<div className={styles.time}>
@@ -56,13 +59,11 @@ const Question: React.FC<OwnProp> = (props) => {

<CountdownCircleTimer
isPlaying
duration={props.timeLimit}
duration={duration}
colors={'#6BD534'}
size={60}
onComplete={() => {
// setSeconds(COUNTDOWN_AMOUNT_TOTAL);
// props.updateQuestionNumber();
return { shouldRepeat: true }
return { shouldRepeat: true, delay: 1.5 }
}}
strokeWidth={5} >



+ 2
- 4
src/pages/quiz/Quiz.tsx 查看文件

@@ -11,15 +11,13 @@ import Quiz_Details from '../../mockData/QuizDetails';
const Quiz: React.FC = () => {

const [questionNumber, setQuestionNumber] = useState<number>(1);
const timeLimit = Quiz_Details[questionNumber - 1].timeLimit;

const updateQuestionNumber = () => {
console.log("update")
if (Quiz_Details.length > questionNumber) {
setQuestionNumber((questionNumber) => questionNumber + 1);
}
}
console.log("no", questionNumber);
console.log(Quiz_Details[questionNumber - 1]);

return (
<div className={styles.quizContainer}>
@@ -33,7 +31,7 @@ const Quiz: React.FC = () => {

<Question question={Quiz_Details[questionNumber - 1].question}
questionNumber={questionNumber}
timeLimit={Quiz_Details[questionNumber - 1].timeLimit}
timeLimit={timeLimit}
updateQuestionNumber={updateQuestionNumber} />

</div>


Loading…
取消
儲存