错误:超过最大更新深度。当组件重复调用时可能会发生这种情况

fir*_*sco 2 javascript web reactjs react-redux

我是新来的,过去几天我一直在玩它。每当我尝试在下面运行这个简单的代码时,它总是给我错误。

“超出了最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 内重复调用 setState 时,可能会发生这种情况。React 限制嵌套更新的数量以防止无限循环。”

我不知道为什么,有人可以帮助我吗?先感谢您。

import React, { Component } from 'react';
import { render } from 'react-dom';



export default class State1 extends React.Component {

  constructor() {
    this.state = { value: "llll" };
  }

  change() {
    setTimeout(()=>{
      this.setState({value:"eeee"});
    },3000);
  }

  change2() {
      this.setState({value:"eeee"});
  }
  
  render() {
    {this.change2()};
    return (
      <div > {this.state.value} </div >
    ) 
  }


}
Run Code Online (Sandbox Code Playgroud)

the*_*usk 7

每次调用 时setState(),您的组件都会调用该render方法来反映状态的变化,然后调用change2(),从而导致无限循环。