为了响应状态更改,我想触发另一个状态更改。这本质上是个坏主意吗?
特定类型的场景是将组件建模为状态机,根据 的值呈现不同的信息this.state.current_state
。但是外部事件可以促使它经历状态转换,通过通量存储改变它的状态。这是一个人为的场景来传达这个想法:
我认为执行此操作的正确生命周期方法是shouldComponentUpdate
. 这种效果的东西:
shouldComponentUpdate: function(nextProps, nextState) {
if (nextState.counter > 4 && this.state.current_state !== DISPLAY_MANY) {
this.setState({ current_state: DISPLAY_MANY });
}
return true;
}
在某些子组件中,counter
可能会增加,因此与其根据某个counter
变量的值推断它将显示的内容,不如对状态进行显式编码。
实际场景比这更复杂,但希望这个场景足够详细,可以让你理解这个想法。可以按照我的想法做吗?
编辑:通过添加额外的状态条件来避免触发无限循环的固定代码示例