소스 검색

Properly using useEffect to save timer

Kirk Trombley 5 년 전
부모
커밋
184432dcf1
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      client/src/components/screens/GamePanel/RoundTimer.jsx

+ 6 - 2
client/src/components/screens/GamePanel/RoundTimer.jsx

@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useEffect } from "react";
 import styled from "styled-components";
 import ms from "pretty-ms";
 import useCountdown from "../../../hooks/useCountdown";
@@ -15,9 +15,13 @@ const TimedOut = styled(TimerSpan)`
 
 export default ({ seconds, onTimeout }) => {
   const [remaining] = useCountdown(seconds, () => onTimeout());
+  useEffect(() => {
+    if (remaining > 0) {
+      saveTimerToLocalStorage(remaining);
+    }
+  }, [remaining]);
   
   if (remaining > 0) {
-    saveTimerToLocalStorage(remaining);
     return <TimerSpan>Time: {ms(remaining * 1000)}</TimerSpan>;
   }