Meteor アプリケーションで、react-router を使用して Meteor ロールの割り当てを実装しようとしています。割り当てロールを使用してルートを制限するために適切に管理できないという事実を除いて、すべてが正常に機能しています。Meteor.user()
私は隕石の役割を試しました:
onEnter={requireVerified}
ルートでを使用しようとしています。これはコードです:
const requireVerified = (nextState, replace) => {
if (!Roles.userIsInRole(Meteor.userId(), ['verified'],'user_default')) {
replace({
pathname: '/account/verify',
state: { nextPathname: nextState.location.pathname },
});
}
};
私は Meteor.user() で試しました:
const requireVerified = (nextState, replace) => {
if (!Meteor.user().isverified == true) {
replace({
pathname: '/account/verify',
state: { nextPathname: nextState.location.pathname },
});
}
};
したがって、これはルート リンクをクリックすると機能しますが、手動で更新 (F5) すると機能しません。それを掘り下げた後Meteor.user()
、ページを手動で更新すると準備ができていないことがわかりました。
Meteor.userid() または Meteor.logginIn() が機能していることは知っていますが、それらがログに記録されていることだけでなく、それらが「検証済み」であるか、役割を持っているかを検証したかったのです。
また、react を使用してコンポーネントの内部をチェックしようとしましたが、componentDidMount()
どちらcomponentWillMount()
の場合も同じで、Meteor.user()
コンポーネントがマウントされる前に手動のフレッシュがロードされません。
では、コンポーネント/ルートを meteor/alaning ロール + react router で制限する最良の方法は何ですか? (TheMeteorChef のベース内で react-komposer を使用しています)
ありがとうございました。