我收到此错误:
'Invariant failed: Browser history needs a DOM'
我尝试了大部分设法找到Google的事情,但似乎没有任何效果。
目前,我的简化设置就是这样
<BrowserRouter forceRefresh={!supportsHistory}>
<App />
</BrowserRouter>
App
是这样的:
import history from './history';
<Router history={history}> // I have to remove Router for it to work at all
<Switch>
<Route1 irrelevant/>
<Route2 irrelevant/>
</Switch>
</Router>
history.js:
import { createBrowserHistory } from 'history';
export default createBrowserHistory();
Route2:
import history from './history';
import { withRouter } from 'react-router-dom';
<button onClick={() => history.goBack()}>
export default withRouter(Route2);
我使用历史记录的唯一原因是第二条路线中的goBack函数。因此,如果有一种替代方法,我很好奇,或者是否有一种方法可以使历史发挥作用。
答案 0 :(得分:0)
要访问由路由器控制的历史记录实例,您应使用withRouter,它允许您访问路由器属性:
import { withRouter } from "react-router";
import React from "react";
render() {
const { history } = this.props;
return <button onClick={() => history.goBack()}>;
}
}