我正在构建一个Meteor + React + Material-UI应用,我正在使用react-router和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
路由的最后一条路线(即推荐人)。
有什么想法吗?
谢谢!
答案 0 :(得分:1)
感谢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}/>
);
}
});