reactjs - useEffect、useCallback、useMemo的依赖数组
问题描述
我对 React Hooks 的依赖性感到很困惑。这是示例:
const memorizeValue = useMemo(() => {
return {
count,
setCount,
}
}, [count, setCount])
在 React 纪录片中:
笔记
依赖数组不作为参数传递给函数。但是,从概念上讲,这就是它们所代表的含义:函数内引用的每个值也应该出现在依赖项数组中。将来,一个足够先进的编译器可以自动创建这个数组。
count
并且setCount
都在useMemo的回调中,如果我没有传入setCount
依赖数组,eslint不会警告我,但是count
会,那么有什么区别?为什么不需要通过setCount
?setCount
在 useMemo 里面,不是吗?
这是codeandbox链接:
https://codesandbox.io/s/react-codesandbox-forked-xfupk?file=/src/Demo1/index.js:254-363
我想我可能误解了文件。哪位大神指点一下,谢谢
解决方案
笔记
React 保证
setState
函数标识是稳定的,并且不会在重新渲染时改变。这就是为什么从useEffect
oruseCallback
依赖列表中省略是安全的。
假设setCount
是一个useState
钩子的更新函数,那么它保证是一个稳定的参考。
推荐阅读
- reactjs - 将反应可拖动移动到屏幕一侧?
- svg - 如何在 Vuetify 中添加自定义 SVG 图标 - Vue
- java - Spark 作业完成,写入输出文件但执行程序状态为 KILLED?
- python - 尝试使用 python 读取 oracle 数据库时出错
- php - 即将存储与父复选框相关的子复选框的多个值,数据只存储一次
- c++ - 在具有成员函数的运行线程期间破坏的对象
- vba - Excel-VBA:比较日期时出现运行时错误
- android - 在 Android 应用中添加 Admob 广告时出现依赖项错误
- angular - Angular HttpClient 中的错误处理(在业务规则中找不到记录时不被视为错误)
- haskell - 如何从不纯的方法返回纯值