来源:未知 时间: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