javascript - useEffect as Callback for useState 依赖太多
问题描述
我正在用 React Hooks 重写一个类组件(因为它更干净),但我面临一个问题。在我的类组件中,我有一个回调函数this.setState({B: "blah blah blah"}, () => {//do some function with state A})
,因此每次状态 x 发生变化时,我都会将新的状态值与状态 B 结合使用。当我尝试使用 React Hooks 实现相同的功能时,如下所示:
useEffect(() => {
// Use state A with state B in function
myFunction();
}, [myFunction])
const myFunction = useCallback(() => {console.log(`${A} and ${B}`}, [A, B]);
我只希望我的函数在状态 A 更改时运行 - 而不是状态 B ......但是现在它会在状态 A 或状态 B 呈现的任何时候重新呈现。
我尝试在 useCallback [A] 中只包含一个依赖项——A——但问题是我得到:React Hook useCallback 缺少依赖项:'B'。包括它或删除依赖数组
解决方案
也许尝试使用
}, [A])
作为唯一的依赖项,并在函数的末尾使用这样的注释:
// eslint-disable-next-line
这将禁用缺少的依赖项并为您提供所需的结果。这通常对我有用。
推荐阅读
- angular - 如何在角度 6 中正确翻译日期
- python - 在 txt 文件中搜索一个单词并找到相应的行?
- apache-spark - Spark SQL 中的增量更新
- python - AP调度程序中的亚秒间隔
- python - Spacy - nlp.pipe() 返回生成器
- c# - 发送 html 电子邮件时,内联 css 样式未正确应用
- javascript - 日期计算在 Chrome 和 Firefox 中可以正常工作,但在 Safari 中不行
- node.js - 从 Node / Express 中的另一个路由中调用 API 端点
- javascript - 将 dynamodb 响应数据传递给回调函数的问题
- mongodb - Studio 3T 选择数组列中的所有数组值