私はカスタム管理ビューページを試していますが、その動作に関する質問が1つあります。React-routerリダイレクトがMeteorjsのコンポーネントをループしています
現時点では、現在のロジックは次のとおりです。
- 認証され、彼/彼女が/&ログインページにリダイレクトされます/管理者パネルやその子供たちを訪問しようとしないで、ユーザ場合。
- 場合はログインしたユーザの訪問/&(ログインページ)彼/彼女が/管理者パネルにリダイレクトされます問題は、ユーザーがloddedと上でされている
- まず/&ページの負荷を
- その後/&ユーザーは、彼/彼女が/管理者パネルになり、ナビゲートする必要があります上にあったか、リロード後/管理者パネル/ child_component場合/管理者パネル にユーザーをリダイレクトします再び/child_component
に現在の行動の原因が何であるかを説明していただけますと、ページ上でユーザーの滞在をするためにいくつかの方法がある場合は、リロードを開始し、一定のリダイレクトを回避することができますか?
ログインページ/&
import React, { Component } from 'react';
import { Link, browserHistory } from 'react-router';
import { Tracker } from 'meteor/tracker'
class Backdoor extends Component {
onSubmit(event) {
event.preventDefault();
// Collecting user input
const self = this;
const email = $(event.target).find('[name=email]').val();
const password = $(event.target).find('[name=password]').val();
Meteor.loginWithPassword(email, password, function (err) {
browserHistory.push('admin-panel');
});
}
componentWillMount(){
Tracker.autorun(() => {
if (Meteor.user()) {
browserHistory.push('/admin-panel')
} else if(!Meteor.user()) {
browserHistory.push('/&')
}
})
}
render() {
return (
// Login form
);
}
}
export default Backdoor;
リアクト・ルータのパス:
const routes = (
<Router history={browserHistory}>
<Route path='/' component={App}>
<Router path='about' component={About} />
</Route>
<Route path='&' component={Backdoor} />
<Route path='admin' component={AdminPanel}>
<Router path='/admin/admin_component' component={AdminChild} />
</Route>
</Router>
このケースを担当してくれてありがとう、ありがとうございます。私は自分の環境の中であなたの提案を上からテストしました。最初のケースでは私のために働いていましたが、私は各ルートでユーザー認証を制御することに悩まされました。おそらく私はそれを声に出して提示する簡単な方法を思い付いた。 – volna