我正在使用meteor-role包,在Flowrouter上重定向时遇到问题。我在导航栏中有一个按钮,用户将用户重定向到主页,具体取决于角色。问题是角色包需要一些时间准备好并且抛出错误。 关于如何解决这个问题的任何想法?提前致谢。
FlowRouter.route( '/', {
name: 'home',
triggersEnter: [() => {
if (Meteor.userId()) {
if (Roles.userIsInRole(Meteor.userId(), 'student')) {
FlowRouter.go('internships_next');
} else if (Roles.userIsInRole(Meteor.userId(), 'organization')) {
FlowRouter.go('user_internships');
} else {
throw new Meteor.Error( 500,
'There was an error processing your request. User id: ' + Meteor.userId()
);
}
}
}],
action() {
mount(LayoutContainer, {
content: <LoginContainer/>,
});
},
});
答案 0 :(得分:1)
在重定向之前,您需要确保Roles.subscription.ready()为true:
FlowRouter.route( '/', {
name: 'home',
action() {
Tracker.autorun(function() {
if (Meteor.userId() && Roles.subscription.ready()) {
if (Roles.userIsInRole(Meteor.userId(), 'student')) {
FlowRouter.go('internships_next');
} else if (Roles.userIsInRole(Meteor.userId(), 'organization')) {
FlowRouter.go('user_internships');
} else {
mount(LayoutContainer, {
content: <LoginContainer/>,
});
}
});
}
},
});