如果setState
触发组件的重新呈现,并且useState
在每次呈现时执行,那么如果要重新执行初始化,为什么要更新旧值呢?
例如,如果我有一个计数器设置为0 (useState(0)
),并且我通过setState
修改该计数器的状态为1,这将触发重新渲染,因此useState
将再次执行,因此值应该再次为零,但这不会发生(幸运的是),我不知道为什么?
这就是react钩子的实现方式。
value参数在随后的渲染中被react忽略。它只会在初始渲染时设置为这个值。
你可以从作者那里读到更多关于React的内部代码,他们会进入代码内部检查它,或者你自己检查内部代码。
这是我找到的一个:https://www.newline.co/@CarlMungazi/a- journey-through-useste-hook—a4983397
useState
在每次渲染时都被触发。但是该值在第一次渲染后被忽略。
From the docs:
你可能想知道:为什么useState不命名为createState ?"Create"不是很准确,因为状态只在组件第一次渲染时创建。在接下来的渲染中,useState给我们当前的状态。