私はReactでインクリメンタルスタイルのゲームを書いていますが、このsetIntervalが内部にあります App.ts:
useEffect(() => {
const loop = setInterval(() => {
if (runStatus) {
setTime(time + 1);
}
}, rate);
return () => clearInterval(loop);
});
また、次のようなさまざまなイベントハンドラーもあります。
<button onClick={() => increment(counter + 1)}>Increment</button>
残念ながら、そのボタンを1秒間に複数回クリックすると、setIntervalによるtime
状態の更新がブロックされます。
フックを使用したこの状態とReduxの保存状態。
少なくとも、setIntervalを確実にチェックして、ページをブロックせずにクリックできるようにするにはどうすればよいですか?
そのようにしてください
[]
空の依存関係は、コンポーネントがマウントされるときにのみ実行されることを意味します。
useEffect(() => {
const loop = setInterval(() => {
if (runStatus) {
setTime(prev => prev + 1);
}
}, rate);
return () => clearInterval(loop);
}, []); <--- add that []
ノート
runStatus
か、rate
その動的な状態ならば、依存関係として変数この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加