首页 > 解决方案 > useEffect、useCallback、useMemo的依赖数组

问题描述

我对 React Hooks 的依赖性感到很困惑。这是示例:

const memorizeValue = useMemo(() => {
    return {
      count,
      setCount,
    }
  }, [count, setCount])

在 React 纪录片中:

笔记

依赖数组不作为参数传递给函数。但是,从概念上讲,这就是它们所代表的含义:函数内引用的每个值也应该出现在依赖项数组中。将来,一个足够先进的编译器可以自动创建这个数组。

count并且setCount都在useMemo的回调中,如果我没有传入setCount依赖数组,eslint不会警告我,但是count会,那么有什么区别?为什么不需要通过setCountsetCount在 useMemo 里面,不是吗?

这是codeandbox链接:

https://codesandbox.io/s/react-codesandbox-forked-xfupk?file=/src/Demo1/index.js:254-363

我想我可能误解了文件。哪位大神指点一下,谢谢

标签: reactjsreact-hooksuse-stateusecallbackreact-usememo

解决方案


检查useState 文档

笔记

React 保证setState函数标识是稳定的,并且不会在重新渲染时改变。这就是为什么从useEffect oruseCallback依赖列表中省略是安全的。

假设setCount是一个useState钩子的更新函数,那么它保证是一个稳定的参考。


推荐阅读