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