如何使用 react-router 导航回到上一条路线?
How to navigate back to last route with react-router?
我正在构建 Meteor + React + Material-UI app and I'm using react-router and meteor-accounts-react-material-ui。
meteor-accounts-react-material-ui 的文档显示了使用 FlowRouter 指定成功登录后要调用的 redirect
函数的示例:
<Accounts.ui.LoginFormSet redirect={handleLogin}/>
因为我不相信你可以通过 react-router 的路由将 redirect
属性 传递给 Accounts.ui.LoginFormSet
组件:
Routes = React.createClass({
getInitialState: function() {
return {};
},
render: function () {
return (
<Router history={browserHistory}>
<Route name="home" path="/login" component={LoginWrapper}/>
</Router>
);
}
});
我能弄清楚如何用 react-router 重现它的最好方法是像这样包装 Accounts.ui.LoginFormSet
组件:
var LoginWrapper = React.createClass({
handleLogin: function() {
//what do I put in here?
},
render: function () {
return (
<Accounts.ui.LoginFormSet redirect={this.handleLogin}/>
);
}
});
然而,我似乎无法弄清楚的是如何实际重定向到调用 /login
路由(即引荐来源网址)的最后一条路由。
有什么想法吗?
谢谢!
感谢 qnub on Github 的回答,我设法解决了这个问题:
var LoginWrapper = React.createClass({
handleLogin: function() {
// redirect through ReactRouter if it have ability or through window:
window.location.href = this.targetUrl;
},
render: function () {
this.targetUrl = window.location.href; // save target URL from window on through ReactRouter if it have ability
return (
<Accounts.ui.LoginFormSet redirect={this.handleLogin}/>
);
}
});
我正在构建 Meteor + React + Material-UI app and I'm using react-router and meteor-accounts-react-material-ui。
meteor-accounts-react-material-ui 的文档显示了使用 FlowRouter 指定成功登录后要调用的 redirect
函数的示例:
<Accounts.ui.LoginFormSet redirect={handleLogin}/>
因为我不相信你可以通过 react-router 的路由将 redirect
属性 传递给 Accounts.ui.LoginFormSet
组件:
Routes = React.createClass({
getInitialState: function() {
return {};
},
render: function () {
return (
<Router history={browserHistory}>
<Route name="home" path="/login" component={LoginWrapper}/>
</Router>
);
}
});
我能弄清楚如何用 react-router 重现它的最好方法是像这样包装 Accounts.ui.LoginFormSet
组件:
var LoginWrapper = React.createClass({
handleLogin: function() {
//what do I put in here?
},
render: function () {
return (
<Accounts.ui.LoginFormSet redirect={this.handleLogin}/>
);
}
});
然而,我似乎无法弄清楚的是如何实际重定向到调用 /login
路由(即引荐来源网址)的最后一条路由。
有什么想法吗?
谢谢!
感谢 qnub on Github 的回答,我设法解决了这个问题:
var LoginWrapper = React.createClass({
handleLogin: function() {
// redirect through ReactRouter if it have ability or through window:
window.location.href = this.targetUrl;
},
render: function () {
this.targetUrl = window.location.href; // save target URL from window on through ReactRouter if it have ability
return (
<Accounts.ui.LoginFormSet redirect={this.handleLogin}/>
);
}
});