Reactjs 如何在React路由器上使用后退按钮

Reactjs 如何在React路由器上使用后退按钮,reactjs,browser-history,react-router,Reactjs,Browser History,React Router,我的路由器有问题 以下是我如何初始化和运行路由器: var routes = ( <Route handler={App}> <DefaultRoute handler={Domains}/> <Route path="login" name="login" handler={Login}/> <Route path="signup" name="signup" handler={SignUp}/> </Rou

我的路由器有问题

以下是我如何初始化和运行路由器:

var routes = (
  <Route handler={App}>
    <DefaultRoute handler={Domains}/>
    <Route path="login" name="login" handler={Login}/>
    <Route path="signup" name="signup" handler={SignUp}/>
  </Route>);

var config = {routes, location: Router.HistoryLocation};
const router = Router.create(config);
export default router;

$(document).ready(() => {
  router.run( (Root) => {
    React.render(<Root/>, document.getElementById('maincontent'));
  });
});
var路由=(
);
var config={routes,位置:Router.HistoryLocation};
const router=router.create(配置);
导出默认路由器;
$(文档).ready(()=>{
路由器运行((根)=>{
React.render(,document.getElementById('maincontent');
});
});
通过这种方式阅读文档,我希望在按下浏览器的“后退”按钮或使用goBack()方法时,浏览器会转到上一页


相反,当我使用
goBack()
方法时,首先从url中删除一个散列(该方法添加了该散列),并且只有在再次调用它之后,它才能工作。按钮也是一样。

根据文档,如果要使用
历史定位
必须配置服务器来处理它

(nodejs示例):

否则,您将需要使用HashLocation,因为这将使它保持在同一页面上

如果设置正确,您可以通过接收
路由器中的第二个道具来调试路由器中发生的事情。运行
--
状态

Router.run(路由、函数(处理程序、状态){
console.log(状态);
React.render();
});

谢谢,但我的服务器配置正确。你知道如何调试路由器的历史记录吗?我只是把问题缩小到特殊情况下,但我需要看看URL是如何存储的。在
路由器中传回了第二个道具。运行
称为
routeState
——这几乎是路由结果的上下文。您可以将其记录到控制台,以检查实际返回的内容。
app.get('*', function (req, res) {
  res.render('index');
});
Router.run(routes, function(Handler, state) {
    console.log(state);
    React.render(<Handler>);
});