我有一个使用React Router的React App,我想在重新加载时保存状态。意思是,当用户重新加载页面时,我希望能够检测到该页面并将状态保存在历史记录中,以使该应用程序自动回退。为此,这是我的代码:
componentWillMount(){
if (this.props.location.state == null) {
this.setState({
state: new State()
});
} else {
this.setState({
state: this.props.location.state.state
});
}
window.addEventListener('beforeunload', function(event) {
this.props.history.replace(window.location.pathname, { state: this.state.state });
}.bind(this));
}
但是,这在所有桌面浏览器上都有效,但不适用于移动浏览器(在iOS上经过测试,不了解Andriod)。我怀疑这是因为窗口事件监听器未触发。有谁知道如何实现此功能,以便在移动设备上工作?谢谢!