我已经使用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]);
在这种情况下,它会被触发。
在我的特定用例中,更改长度就足够了,因为不可能更改数组内容,但是不能更改数组长度。
是不是因为对数组的引用仅更改其内容而不更改,所以在第一种情况下未触发它的原因?另外,这种使用数组长度的方法是否值得推荐?