在componentDidMount上清除条件状态

时间:2018-07-18 07:03:21

标签: javascript reactjs components mount

我在这里面对并发表意见,我想再说一遍。呈现应用程序的第一页时,出于安全原因,我想清除状态,因此在布局类组件中编写:

componentDidMount() {
    this.props.clearState();
}

问题是,当我进入应用程序的第二页并单击反斜杠时,状态将再次清除。我想以某种方式在我的componentDidMount中设置条件,以免如果我来自应用程序页面时不清除状态。这可能吗?您对如何执行此操作还有其他想法吗?非常感谢

2 个答案:

答案 0 :(得分:1)

如果您不使用Redux,则在clearState()被触发时,可以尝试使用sessionStorage临时存储。

//simple Example

componentDidMount() {
if (sessionStorage.getItem('clearState') === 0) {
 this.props.clearState();
 sessionStorage.setItem('clearState fired', 1)
 }
} 

答案 1 :(得分:1)

您应该尝试在componentWillUnmount()生命周期方法内清除Component的状态。这是进行清洁的合适场所。