reactjs - 我应该在 useCallback 的依赖数组中包含 setState 吗?
问题描述
const [active, setActive] = useState(false);
const onActiveChanged = useCallback(
isActive => () => {
// do something
setActive(isActive);
},
[setActive], // or just [] is okay?
);
一起使用useState
and useCallback
(or useMemo
) 时,我应该包含setState
在依赖项数组中吗?
解决方案
对此的建议也在React Docs-Hooks API Reference上。
setState 函数用于更新状态。它接受一个新的状态值并将组件的重新渲染排入队列。
setState(newState);
在后续重新渲染期间,useState 返回的第一个值将始终是应用更新后的最新状态。
笔记
React 保证 setState 函数标识是稳定的,并且不会在重新渲染时改变。这就是为什么从 useEffect 或 useCallback 依赖列表中省略是安全的。
推荐阅读
- python - 无法从字符串中获取子字符串。需要帮助
- javascript - 避免在客户端缓存浏览器
- iis - java - 如何为java创建的windows服务器上的所有新子目录设置权限?
- reactjs - 反应包装器以返回孩子
零件 - python - TypeError: unhashable type: 'dict' Python/Flask
- rust - 如何进行批量渲染?
- tcl - Tk/Tcl 缩放小部件间隔问题
- android - 如何在android中为每个用户提供免费的应用购买试用期
- azure - 在 Azure 虚拟机中部署 Uipath
- apache-kafka - Kafka-Streams:聚合(KTable,KTable)连接的结果