导航到某个路径后清除位置状态

时间:2017-04-19 11:09:17

标签: reactjs react-router

我正在使用react-router browserHistory导航到路径。

browserHistory.push({
  pathname: '/mycomponent',
  state: { someValue: 'value'},
});

所以这将导航到mycomponent。一旦我到达我的组件,我想清除键someValue。所以当我刷新页面时,它不会包含该值。

export class myComponent extends component {
  componentWillMount() {
    const value = this.props.location.state.someValue;
    // clear state.someValue from history
  }
}

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:15)

我认为您可以使用browserHistory replace方法将历史状态替换为未定义someValue的新状态:

export class myComponent extends component {
    componentWillMount() {
        const value = this.props.location.state.someValue;
       // clear state.someValue from history
        browserHistory.replace({
           pathname: '/mycomponent',
           state: {}
       });
    }
}

答案 1 :(得分:0)

您可以简单地使用 history.replace() 清除状态,如下所示:

只是 import { useHistory } from 'react-router-dom';

然后const history = useHistory();

最后:

useEffect(() => {
  history.replace();
}, []);