请问我在使用useState时候发生死循环是为什么?

前端小白de窝
  • 394

代码如下:

useState
有点不太明白为什么会这样,还有在打印的时候可以发现Mike和N竟然是交替打印出来的?这又是为什么?
Screen Shot 2020-05-10 at 11.17.56 AM.png

回复
阅读 2k
3 个回答

防止组件重复渲染报错

比如你使用类组件,在componentDidUpdate调用setState差不多

你在开发中也不会将setName写在那里,这样和你初始化name就让等于'N'没区别

第一次渲染App 会执行App函数 此时setName setName导致重新渲染 重新渲染又执行App函数 执行App函数又setName 导致无限循环。。。。
console.log(name)第一次会输出Mike 这个是闭包问题 可以看下capture value那块

`useEffect(() => {

setName("N")

}, [])`

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏