我在带有 React 16.12 和 React Router 4.3.1 的 SPA 中存在导航问题,该问题仅发生在 Firefox 浏览器中。
例如,从 URL /recommendedProducts 开始,我导航到 URL /forms。如果我通过在地址栏中按 enter 重新加载 /forms 页面,然后立即按浏览器后退按钮,则 URL 将更改为 /recommendedProducts 但它不会刷新。调查和比较 Firefox 和 Chrome 之间的行为我注意到在 Firefox 中没有触发 popstate 事件。
以下是路线:
<Switch>
<Route path="/recommendedProducts" component={RecommendedProducts} />
...
<Route path="/forms" component={Forms} />
</Switch>
如果不是以这种方式重新加载 /forms 页面,而是按 F5 一切正常,浏览器后退按钮将按预期工作。
为什么 Firefox 不触发 popstate 事件,如何通知 React Router 刷新页面?
编辑: 我刚刚发现了这个 React Router 问题,这正是问题所在: https ://github.com/ReactTraining/react-router/issues/837