shawlp / interview-codes

1 stars 0 forks source link

react hooks为什么不能放在条件判断里 #14

Open shawlp opened 3 years ago

shawlp commented 3 years ago

以useState为例,在react内部,每个组件的hooks都是以链表的形式存在memoizedState属性中。 update阶段,每次调用usestate,链表就会执行next向后移动一步。如果将 useState 写在条件判断中,假设条件判断不成立,没有执行里面的 useState 方法,会导致接下来所有的 useState 的取值出现偏移,从而导致异常发生。

image