2017-12-05 6 views
0

私は何時間もこのことを理解しようとしていましたが、私が試したすべてが失敗します。私はユーザーにログインしようとしています。成功すると、ユーザーの役割に基づいて正しいURLにユーザーを誘導します。次の例では、私は正常にログインし、ユーザーは正常に識別されますが、リダイレクトまたはpush.historyを試みると、私はそれを許可しません。エラーはなく、ログインURLにとどまります。ログイン時にユーザーをリダイレクト

私が使用している: はルータ4を反応して、Meteorjs

handleSubmit(event) { 
    event.preventDefault(); 

    Meteor.loginWithPassword(email, password, (error, result) => { 
    if (error) { 
     this.setState({ loginError: 'Incorrect username or password.' }); 
    } else { 
     if (!!Roles.userIsInRole(Meteor.userId(), 'isAdmin')) { 
     <Redirect to="/admin/dashboard" push /> 
     } 
    } 
    }); 
} 
+0

をやって見つけるかもしれない小道具として、あなたのコンポーネントに渡されている場合。しかし、私が読んだのは、もし彼または彼女が管理者であるならば、エラー、管理パネルにユーザーをリダイレクトすることです。不正なログインに関するものではありません。誤ったログインを処理する最初のif文のelse文、または 'loginWithPassword'が何をしているのかわからない最初のtrueのif文のために{}を追加してください。 – Xorifelse

+0

if文に問題はありません。それは正しく発火する。私が持っている問題は 'リダイレクト 'しないということです。 – bp123

+0

流行に役立つフルハブのhtml/xmlステートメントですか? [this](https://stackoverflow.com/questions/21315896/redirect-after-login-using-meteor-and-iron-router)を読んでください。リダイレクトステートメントがどのようにhtmlになるかはわかりません。 – Xorifelse

答えて

1

Aがコンポーネントがレンダリングあるものです反応し、それはあなたがどこからでも呼び出すことができるだけの機能ではありません。

使用history.push('/admin/dashboard")

ルータはあなたにも、私は `!!`構文でunformilliarだ自分が

this.props.history.push('/admin/dashboard") 
関連する問題