如何使用React Router

时间:2015-08-20 07:46:39

标签: reactjs browser-history react-router

我遇到了ReactRouter的问题。

这里我如何启动并运行路由器:

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'));
  });
});

阅读文档,这样我希望我按下浏览器的后退按钮,或者使用goBack()方法浏览器转到上一页。

相反,当我使用goBack()方法时,首先从url中删除一个哈希值(即transitionTo添加的方法),并且只有在再次调用它之后,它才有效。按钮也一样。

1 个答案:

答案 0 :(得分:0)

根据文档,如果你想使用HistoryLocation,你必须配置你的服务器来处理它..

React Router Documentation - HistoryLocation

(一个nodejs例子):

app.get('*', function (req, res) {
  res.render('index');
});

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

如果设置正确,您可以通过接收router.run - state中的第二道具来调试路由器中发生的事情。

Here's the properties state contains.

Router.run(routes, function(Handler, state) {
    console.log(state);
    React.render(<Handler>);
});