gpt4 book ai didi

javascript - 为什么依赖 useEffect 是数组状态而不是无限循环

转载 作者:行者123 更新时间:2023-12-02 01:27:10 25 4
gpt4 key购买 nike

为什么情况 1 是无限循环,而情况 2 不是,就像 useState() 中的 obj 不是?

情况1:无限循环

const [count, setCount] = useState(0)
const [obj,setObj] = useState({a:1, b:2})

useEffect(( )=>
{setCount((prevCount) => prevCount + 1)
},[{a:1, b: 2 }])

情况2:不是无限循环

const [count, setCount] = useState(0)
const [obj,setObj] = useState({a:1, b:2})

useEffect(( )=>
{setCount((prevCount) => prevCount + 1)
},[obj])

最佳答案

React 使用引用相等性来检查第一个示例中的依赖关系是否已更改,每次创建新对象时,引用都会更改并重新渲染组件。

在第二种情况下,状态保存对象的引用,该引用在重新渲染期间保持不变,因此不会再次触发 useEffect。

关于javascript - 为什么依赖 useEffect 是数组状态而不是无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74223251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com