React.useEffect()第二个参数默认值

时间:2019-02-09 19:54:34

标签: reactjs react-hooks

我想知道React.useEffect() API

React.useEffect(() => {
  // do something only when `someVariable` change.
}, [someVariable]);

或者如果您希望每次道具或状态更改时都调用它。

React.useEffect(() => {
  // do something anytime a prop/state change
});

我的查询是在后一种方法上,React.useEffect每次prop / state发生任何更改时都会触发的默认第二个参数是什么?

2 个答案:

答案 0 :(得分:0)

因此,基于React代码库中的https://github.com/facebook/react/blob/master/packages/react/src/ReactHooks.js#L87,我看到默认的第二个参数是undefined

React.useEffect(() => {}. undefined);

每次更改道具/状态时,以上内容都会更新,基本上是任何会导致其重新渲染的东西。

基于此检查

inputs: Array<mixed> | void | null, // which means it is either an array or undefined

参考:React useEffect Code

答案 1 :(得分:0)

因为没有第二个参数,所以它是undefined,并且在每个渲染器上都会触发useEffect回调:

React.useEffect(() => {
  // do something anytime a prop/state change
});

如果将数组作为第二个参数提供,则它用作值列表,以限制useEffect调用(如果它们未更改)。如果数组为空,则在组件安装时将调用useEffect回调。