栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

反应,未捕获RangeError:超出最大调用堆栈大小

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

反应,未捕获RangeError:超出最大调用堆栈大小

每当您看到

setState
render
函数内部调用的代码时,它都应该唤起与人类movie电影相同的情感。状态更改仅应发生以下更改:用户单击按钮,调整浏览器窗口的大小,拍摄照片等。

这是问题代码:

render () {    ...    this.setState({      iconStyle: _props.iconStyle    });    this.setState({      style: _props.style    });    ...}

[嘴里吐]

上面的代码将导致无限循环,因为

setState
会导致
render
被调用。由于
iconStyle
style
是道具,并且道具无法更改,因此您应该使用这些道具来建立初始状态。

getInitialState() {  return {      iconStyle: this.props.iconStyle,      style: this.props.style,      cursorPos: {},  };}

以后,如果有人单击按钮并且您想要更改iconStyle,则将创建一个单击处理程序来更新您的状态:

handleClick () {  this.setState({    iconStyle: 'clicked'  });}

这将导致您的组件被重新渲染,并且新状态将得到反映。

将您的“状态”想象为正在做饭的人,我们将为他们做饭的照片。在 初始状态 是“蛋破碎: 没有 ,面粉倒: 没有 ,蔬菜切碎:
没有 ”,你拿这个状态的照片。然后厨师做点什么-将鸡蛋弄碎。现在状态已更改,您可以对其进行拍照。然后她切蔬菜。同样,状态已更改,您需要拍照。

类比中的每张照片都代表您的“渲染”功能-
在特定时间点的“状态”快照。如果每次拍摄照片时面粉都倒了,那我们就不得不再拍张照片,因为面粉刚倒了。拍摄另一张照片会导致倒出更多的面粉,因此我们不得不拍摄另一张照片。最终,您会在腹腔的噩梦中将厨房装满天花板,并使房间里的所有人窒息而死。您还会用完相机上的胶卷或硬盘空间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636522.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号