【发布时间】:2020-07-30 17:19:37
【问题描述】:
我正在使用 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'。要么包含它,要么移除依赖数组
【问题讨论】:
-
你试过
useEffect(() => { ... }, [A])或useEffect(() => { ... }, [A, B])吗?我不确定这些变量到底代表什么。无论哪种方式,您都应该粘贴 real 代码以避免 XY 问题。 -
@谢谢我尝试只在 useCallback [A] 中包含一个依赖项 - A - 但问题是我得到:React Hook useCallback has a missing dependency: 'B '。要么包含它,要么移除依赖数组
标签: javascript reactjs react-hooks