小编Hai*_*763的帖子

反应:useState或useRef?

我读约阵营useState(),并useRef()在“ 鱼钩常见问题解答 ”,我糊涂了关于一些使用案例,似乎有useRef和useState解决方案的同时,我不知道哪条路是正确的方式。

关于useRef()的“挂钩常见问题”中:

“ useRef()钩不仅用于DOM引用。“ ref”对象是通用容器,其当前属性是可变的,并且可以保存任何值,类似于类的实例属性。”

使用useRef()

function Timer() {
  const intervalRef = useRef();

  useEffect(() => {
    const id = setInterval(() => {
      // ...
    });
    intervalRef.current = id;
    return () => {
      clearInterval(intervalRef.current);
    };
  });

  // ...
}
Run Code Online (Sandbox Code Playgroud)

使用useState()

function Timer() {
  const [intervalId, setIntervalId] = useState(null);

  useEffect(() => {
    const id = setInterval(() => {
      // ...
    });
    setIntervalId(id);
    return () => {
      clearInterval(intervalId);
    };
  });

  // …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

11
推荐指数
4
解决办法
1944
查看次数

标签 统计

react-hooks ×1

reactjs ×1