Я обнаружил, что эта проблема связана с сафари кэш обратной пересылки . Решением описанной проблемы было бы прослушать событие pagehow и проверить, кэширована ли загруженная страница.
componentDidMount() {
window.addEventListener('pageshow', (event) => {
// fix for safari cached page
if (event.persisted) {
this.setState({
isLoading: false
});
}
});
}
Edit: событие pageshow
вызывается только один раз, и это известная ошибка webkit . Чтобы избежать этого, вам действительно нужно использовать window.location.reload()
для сброса всего. Таким образом, событие снова будет запущено в следующий раз.