https://codesandbox.io/s/mfcqd?file=/src/MainGameContainer.jsx
我猜问题在于'./src/gameElements/lasers.jsx',它是函数开始时的useEffect,每次我拍摄时都会继续渲染。
谢谢anaone 能帮上忙!!
答案 0 :(得分:2)
你必须在你的 useEffect 清理中清除间隔,否则当组件重新渲染时,旧的间隔仍然存在:
useEffect(() => {
let timing = setInterval(moveLasers, 30);
return () => clearInterval(timing);
});