-1

在 React 钩子之前,我会使用componentDidUpdate(prevProps, prevState),如果我只想在this.state.a更新后执行给定的代码,我会这样做

if (prevState.a !== this.state.a) {
  <...>
}

我怎样才能实现同样的目标useEffect()

4

4 回答 4

3

useEffect函数采用一个依赖数组,您可以在其中提及要跟踪更改的状态。

useEffect(() => {
    //your code here
}, [a])
于 2021-05-28T13:34:01.160 回答
1

useEffect 将第二个参数称为依赖数组。您可以在此处传递您的状态,只要依赖数组中的值发生更改,就会执行此操作。

useEffect(() => {
   console.log('i get executed whenever a changes')
}, [a]) 
于 2021-05-28T13:34:56.643 回答
0
useEffect(() => {
//Your code
}, [stateOne, stateTwo])

[stateOne, stateTwo] 表示如果内部定义的任何状态变量发生变化,useEffect 将运行。安装后也会第一次运行。

[] 表示只运行一次

它被称为 useEffect 的依赖数组。

于 2021-05-28T13:36:30.223 回答
0

useEffect接受第二个参数,称为依赖数组。您可以在此处传递您的状态变量,并且useEffect仅当该状态变量更改时才会执行回调函数。

const [a, setA] = useState(0);
useEffect(() => {
    //write you code here
}, [a]);

于 2021-05-28T14:49:05.287 回答