Ich experimentiere auf benutzerdefinierte Admin-Ansichtsseite und habe eine Frage über das Verhalten.React-Router Redirect ist Looping über Komponenten in Meteorjs
Die aktuelle Logik im Moment ist:
- Wenn der Benutzer nicht authentifiziert in und versucht /admin-Panel oder seine Kinder besuchen er/sie zu /& Login-Seite umgeleitet wird .
- Wenn Benutzer angemeldet und Besuche /& (Anmeldeseite) er/sie zu /admin-Panel umgeleitet wird
Das Problem ist, wenn der Benutzer in ist lodded und ist auf /Admin-Panel und die Seite neu geladen geschieht folgendes:
- Erste /& Seite geladen Dann
- /& leitet Benutzer /admin-Panel Wenn der Benutzer war oder /admin-Panel/child_component nach dem Neuladen er/sie auf /admin-Panel sein und muss navigieren wieder zu /child_component
können Sie mir bitte erklären, was ist die Ursache für das aktuelle Verhalten und wenn es eine Möglichkeit, benutzer Aufenthalt auf der Seite der reload wurde initiiert und kann die konstante Umleitung vermeiden zu machen?
Die Login-Seite /&
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;
React-Router Pfad:
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>
ich danke Ihnen für die Zeit, die Sie auf diesen Fall gewidmet haben, schätze ich sehr. Ich habe in meiner Umgebung Ihre Vorschläge von oben und im ersten Fall getestet. Es hat irgendwie für mich funktioniert, aber ich hatte Probleme mit der Kontrolle der Benutzerauthentifizierung auf jeder Route. Und kam mit einem wahrscheinlich einfacheren Weg, ich werde es unten präsentieren. – volna