【发布时间】:2021-01-17 20:11:54
【问题描述】:
我的 React 应用使用 Material UI 中的滑块组件。它的 onChange 事件调用一个函数来更新状态。我意识到我的组件会为每个滑块步骤重新渲染,这就是为什么我想在上次移动滑块后延迟状态更新 300 毫秒。
我的方法是通过 onChange 启动一个带有状态更新的计时器。当再次调用 onChange 时,应该取消之前的计时器。这是我仍在努力的部分。
setSliderValue 是一个接受数字来更新状态的函数。 如何仅在再次调用sliderChangeHandler时清除“计时器”?
const [sliderValue, setSliderValue] = useState(20);
const sliderChangeHandler = (event, newValue) => {
const timer = setTimeout(setSliderValue, 300, newValue);
clearTimeout(timer);
};
【问题讨论】:
标签: javascript reactjs timer slider cleartimeout