触发React Router状态更新

时间:2020-05-15 02:28:42

标签: reactjs react-router

我有一个使用React和React Router的Web应用程序。在应用程序中,我可以轻松地使用History对象进行导航。

但是我注意到,如果在控制台中(或从测试中)我尝试使用window.history.pushState(..)进行导航,那么什么也不会发生!

如何使react-router尊重实际的history对象而不是它们自己的包装器?

我尝试将pushState的呼叫从window.history转发到内部History,但总是以无限循环结束。

1 个答案:

答案 0 :(得分:0)

我不知道如何正确执行此操作。 :(

我正在使用此黑客进行变通:

import { createBrowserHistory, History } from 'history';

declare global {
  interface Window {
    reactHistory: History;
  }
}

window.reactHistory = createBrowserHistory({...});

然后从测试中我叫reactHistory.replace(<path here>)