繁体   English   中英

如何确定 React.useCallback 的依赖列表?

[英]How to decide the dependency list for React.useCallback?

考虑以下示例,其中resetCount function 也可以在空依赖项列表中正常工作。

那么,我们应该在它的依赖项中包含setCount吗?
有什么要记住的指导方针吗?
我很想知道 React.useCallback 中依赖列表的指南。

import React, { useState, useCallback } from 'react';
import { render } from 'react-dom';

import Child from "./Child";
import './style.css';

const Parent = () => {
  const [count, setCount] = useState(0);
  console.log("re-render parent component");

  const resetCount = useCallback(() => {
    setCount(0);
  }, [setCount]); // ([] as well as [setCount] - both work) So should this dependency contain setCount? 

  return (
    <main>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count=>(count+1))}>Increment</button>
      <Child reset={resetCount} />
    </main>
  )
}

render(<Parent />, document.getElementById('root'));

好吧,最明确的建议(对于不那么高级的 React 程序员来说也是最好的起点)是: 不要在依赖方面对 React 撒谎 有了它,它将始终按预期工作,您不会感到惊讶。

现在,如果您知道某些事情不会改变,那么您可以对该规则进行例外处理。 对于useState钩子返回的集合state function,是这样的,所以可以省略它,但是放在那里也没有坏处(因为它没有改变,不会导致效果触发) .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM