前提・実現したいこと
reactを用いてストップウォッチを作成したい
発生している問題・エラーメッセージ
時間のカウントアップはできるが
clearTimeoutを用いたループ処理の停止ができない
エラーメッセージ:なし
該当のソースコード
import React from 'react'; class App extends React.Component{ constructor(props){ super(props); this.state = {timer:'00.00.000', } } render(){ let startTime; let timeoutId; const countUp =() => { const d = new Date(Date.now() - startTime); const m = String(d.getMinutes()).padStart(2,'0'); const s = String(d.getSeconds()).padStart(2,'0'); const ms = String(d.getMilliseconds()).padStart(3,'0'); this.setState({timer:`${m}.${s}.${ms}`}); timeoutId = setTimeout(()=>{ countUp(); },10); } return ( <div> <div>{this.state.timer}</div> <button onClick={()=>{ startTime = Date.now(); countUp(); }}>start</button> <button onClick={()=>{ clearTimeout(timeoutId); }}>stop</button> <button onClick={()=>{ this.setState({timer:'00.00.000'}); }}>reset</button> </div> );} } export default App;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/09 03:42
2021/08/09 03:52
2021/08/09 04:28