Я пытаюсь обновить состояние непосредственно внутри возврата, не используя какой-либо метод жизненного цикла, и получаю ошибку, подобную этой:
Превышена максимальная глубина обновления. Это может произойти, когда компонент повторно вызывает setState внутри componentWillUpdate или componentDidUpdate. React ограничивает количество вложенных обновлений для предотвращения бесконечных циклов.
Я ссылался на эту ссылку для вышеуказанной ошибки, но я не нашел подходящего решения. Всегда ли необходимо использовать функцию или метод жизненного цикла для обновления состояния?
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;
Я написал приведенный выше код и получаю сообщение об ошибке, но в консоли значение состояния обновляется и много раз печатается.