如何使用 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}/>    
    );
  }
});