7

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 を使用しています)

ありがとうございました。

4

1 に答える 1