网站地图    收藏   

主页 > 前端 > react >

react类组件避免重复无限渲染

来源:未知    时间:2024-05-13 20:02 作者:小飞侠 阅读:

[导读] 当应用程序状态发生更改时,React 会调用render 方法,如果在render 方法中继续更改应用程序状态,就会发生render 方法递归调用导致应用报错. Error: Maximum update depth exceeded. This can happen w...

当应用程序状态发生更改时,React 会调用render 方法,如果在render 方法中继续更改应用程序状态,就会发生render 方法递归调用导致应用报错.


Error: Maximum update depth exceeded. This can happen when a component repeatedly calls

setState inside componentWillUpdate or componentDidUpdate. React limits the number of

nested updates to prevent infinite loops.



export default class App extends React.Component {
  constructor() {
    super()
    this.state = { name:"张三" }
  }
  render() {
    this.setState({name:"李四"}) // render 每次执行 > 设置state > 重新渲染render > 设置state ...死循环
    return <div>{this.state.name}/div>
  }
}



与其他生命周期函数不同,render 方法应该被作为纯函数. 

这意味着,在render 方法中不要做以下事情(

1.比如不要调用 setstate 方法,

2.不要使用其他手段查询更改原生 DOM 元素,

3.以及其他更改应用程序的任何操作.

render 方法的执行要根据状态的改变,这样可以保持组件的行为和渲染方式一致.

以上就是react 避免重复无限渲染全部内容,感谢大家支持自学php网。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论