浏览代码

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>;
   }