大家好?所以我现在正在用React开发Web,并且我需要制作一个秒表计时器,当我单击按钮时它将被播放,所以我使用setInterval()方法。但是,当我单击按钮并运行setInterval()时,我从why-did-you-update库收到了此警告,这意味着避免重新渲染。我已经使用了PureComponent,但是为什么在setInterval()运行时仍重新渲染某些组件?它使人落后,如果我使用clearInterval()方法停止setInterval,则该组件将停止重新渲染。
代码如下:
startTimer() {
// Test
this.setState(
prevState => ({
...prevState,
isSessionStarted: true,
duration: prevState.duration,
startedAt: Date.now() - prevState.duration
}),
() => {
this.timer = setInterval(
() =>
this.setState(prevState => ({
duration: Date.now() - prevState.startedAt
})),
1000
);
}
);
}
stopTimer() {
this.setState({ isSessionFinished: true }, () => {
clearInterval(this.timer);
});
}
有解决方案吗?谢谢你。