错误:超出最大更新深度。当组件反复调用

时间:2018-04-04 03:44:09

标签: javascript reactjs web 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 >
    ) 
  }


}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:3)

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