私はReactエクササイズ(自分自身でもクラスでもない)でカウントダウンタイマーを作っていますが、すべてがうまくいきます(メモはいつでも歓迎です)。コンポーネントがアンマウントされた後でもcomponentWillUnmountでタイマーを停止する
だから、私はそれをアンマウントで止めさせたいが、それを正しいものにすることはできない。アンマウント時にsetInterval
を停止するためのプロトコルは何ですか?ここに私が持っているものがあります:
class TimerVal extends Component {
constructor(props) {
super(props)
this.state = {
timeToGo: 30
}
}
secondsToMMSS(seconds) {
//returns "mm:ss"
}
componentDidMount() {
setInterval(
() => this.setState({
timeToGo: this.state.timeToGo - 1
}),
1000
)
}
componentWillUnmount() {
() => this.setState({
timeToGo: undefined
})
}
render() {
// styles
console.log(this.state)
const count = (this.state.timeToGo > 0) ? this.secondsToMMSS(this.state.timeToGo) : "00:00"
console.log(count)
return(
<div style={timerStyle}>
<span style={timerSpanStyle}>
{count}
</span>
</div>
);
}
}