【发布时间】:2022-08-14 20:28:06
【问题描述】:
显然第67行在功能组件中记录count,在第69行count被记录生效,据我了解,功能组件中的count和效果应该永远同步,但事实并非如此
当count从3变成4时,useEffect没有触发,怎么会这样
有什么与并发/悬念有关的吗?
看起来很像反应中的错误,还是我遗漏了任何细节?
-
你能分享一下,你是如何初始化你的计数的?
-
@SujithSandeep 还没有找到可靠地重现这种行为的模式。这应该绝不无论如何都会发生。任何可能的原因都受到高度赞赏
-
如果您将
count创建为变量(即)Let count = 1;,则可能会发生这种情况。你已经创建了const [count, setCount] = useState(0)。只有当 state 或 props 改变时,组件的重新渲染才会发生。只有当重新渲染发生时,useEffect 才会生效。在您的情况下,如果组件重新渲染,则 useEffect 将检查计数是否更改。 -
@SujithSandeep
rerender是什么意思?如果调用第 67 行,我想它相当于rerender。没有rerender怎么会调用第67行 -
@SujithSandeep 您提到的情况可能是这种情况。是否有任何情况下功能组件功能在没有
rerender的情况下运行。如果确定的情况是可能的,一切都应该有意义
标签: reactjs react-hooks use-effect react-suspense react-18