使用数组作为React Hooks useEffect的依赖项

时间:2020-05-19 16:49:54

标签: javascript arrays dependencies react-hooks

我已经使用React Hooks近一年了,对此我感到非常满意。但是今天我遇到了一些让我感到困惑的新事物。我想我已经提出了一个可行的解决方案,但希望由社区来运行。

想象一下,您有一个useEffect,它具有一个数组作为依赖项:

const myArray = [1, 2, 3, 4];

useEffect(() => {
  console.log('Inside the useEffect!');
}, [myArray]);

如果添加或删除myArray中的元素之一,则不会触发useEffect

但这是一个起作用的替代依赖项数组:

useEffect(() => {
  console.log('Inside the useEffect!');
}, [myArray.length]);

在这种情况下,它会被触发。

在我的特定用例中,更改长度就足够了,因为不可能更改数组内容,但是不能更改数组长度。

是不是因为对数组的引用仅更改其内容而不更改,所以在第一种情况下未触发它的原因?另外,这种使用数组长度的方法是否值得推荐?

0 个答案:

没有答案