我应该在useCallback的依赖项数组中包含setState吗?

时间:2019-04-18 01:59:35

标签: reactjs react-hooks

    const [active, setActive] = useState(false);

    const onActiveChanged = useCallback(
      isActive => () => {
        // do something
        setActive(isActive);
      },
      [setActive], // or just [] is okay?
    );

同时使用useStateuseCallback(或useMemo)时,我应该在依赖项数组中包含setState吗?

2 个答案:

答案 0 :(得分:0)

对此的建议也位于React Docs - Hooks API Reference上。

  

setState函数用于更新状态。它接受一个新的   状态值,并重新渲染组件。

     

setState(newState);

     

在随后的重新渲染期间,第一个值   useState返回的状态始终是之后的最新状态   应用更新。

     

注意

     

React保证setState函数身份稳定且不会   重新渲染。这就是为什么可以安全地忽略useEffect的原因   或useCallback依赖项列表。

答案 1 :(得分:0)

不。正如文档所说:

React保证setState函数身份稳定且不会 重新渲染。这就是为什么可以安全地忽略useEffect的原因 或useCallback依赖项列表。