我遇到了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添加的方法),并且只有在再次调用它之后,它才有效。按钮也一样。
答案 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>);
});