The answer is stubborn, but he did not approve at all: life cycle methods are called in response to a change in the state of the component tree, but sending an action is likely to result in another state change. This is a situation with a cascading update of a handler event, which allows consux to be reduced: you must make state changes in response to actions and nothing more, otherwise you will have these reactive loops. A change in state occurs immediately.
In practice, this rule often relaxes for convenience. So there is no real correct answer! Like most things in software, it is nuanced.
, ( - ) : , , " " " , ", constructor componentWillMount. , , , componentDidMount/componentWillUpdate/componentDidUpdate.