You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React自定义计数器Hook的延迟配置问题及修改需求

React自定义计数器Hook的延迟配置问题及修改需求

嗨,看起来你已经搭好了一个带滑块调节延迟的计数器框架,但目前滑块控制的delay状态变量还没真正作用到计数器的定时逻辑里,咱们来一步步把这个功能补全:

第一步:在App组件中传递delay参数给useCounter Hook

你需要把组件里的delay状态传给自定义Hook,修改App.js里的Hook调用行:

// App.js 中修改这一行
const count = useCounter(delay);

第二步:完善useCounter Hook的逻辑

接下来要补全useCounter.js里的useEffect代码,让它使用传入的delay参数,同时要处理延迟变化时重新启动定时器的逻辑,还要记得清理定时器避免内存泄漏:

// useCounter.js 完整代码
import { useState, useEffect } from 'react';

export function useCounter(delay) {
  const [count, setCount] = useState(0);

  useEffect(() => {
    // 设置定时器,每隔delay毫秒更新一次count
    const timerId = setInterval(() => {
      setCount(prevCount => prevCount + 1);
    }, delay);

    // 清理函数,组件卸载或delay变化时清除旧定时器
    return () => clearInterval(timerId);
  }, [delay]); // 把delay加入依赖数组,延迟变化时重新执行effect

  return count;
}

这样修改后,滑块调节delay的值时,计数器的 Tick 间隔就会跟着实时变化啦——比如把滑块拉到最小的10ms,计数器就会飞快跳动,拉到2000ms就会变慢很多。

备注:内容来源于stack exchange,提问作者lap top

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:57:59