为什么setState的值不变的情况下依旧会触发更新,导致死循环?

React中在设置state的时候我们必须要在set的时候改变地址才会触发组件更新,但是为什么该代码会触发死循环呢?每次渲染都是set的false,这是什么原因呢
image.png

阅读 2.5k
2 个回答
新手上路,请多包涵

image.png
image.png
我发现直接写在函数体中的setState并不会对比新值旧值是否相同,有一个说法是react渲染中时不会对比setState的新旧值,但是渲染结束之后会对比.所以这些代码才需要放在副作用里.不过我没在官网中找到...

当你的isClick是false的时候,你再去setIsClick(false)是不会引入组件渲染的,你可以写一个demo试试,排除一下其他的代码吧

推荐问题