以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - React 小测验
19. lazy initial state
这段代码的输出结果是什么?
2
1
为什么?
首先,在调用 ReactDOM.render 前,App 组件会被调用一次以初始化组件的状态和副作用。在这个过程中,useState 和 useEffect 都会被调用。
- 调用
useState(1)会初始化state1状态为1。 - 调用
useState(() => {console.log(2); return 2;})先打印出2,并将state2状态初始化为2。 - 调用
console.log(state1),输出1。 - 调用
useEffect,传入空依赖项数组,表示只在组件挂载时执行。在函数体中,调用setState1(3),更新state1的值为3。 App返回null,不产生 DOM 节点。- 最后,
ReactDOM.render将App渲染到页面上。因为state1已经在上一次调用App时被更新为3,所以此时不会再次调用console.log(state1)。
因此,输出为:
2
1