【发布时间】:2019-10-06 14:49:12
【问题描述】:
我正在尝试直接在 return 内部更新状态,而不使用任何生命周期方法,并且收到如下错误:
已超过最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。 React 限制了嵌套更新的数量以防止无限循环。
上述错误我参考了this link,但我没有得到合适的解决方案。是否总是需要使用函数或生命周期方法来更新状态?
import React, { Component } from "react";
import "./App.css";
class App extends Component {
state = {
name: "john"
};
render() {
console.log(this.state);
return (
<div className="App">
<header className="App-header">
{this.state.name}
{this.setState({ name: "abc" })}
</header>
</div>
);
}
}
export default App;
我编写了上面的代码并收到错误,但在控制台中,状态值正在更新并多次打印。
【问题讨论】:
标签: javascript jquery reactjs redux react-redux