Ich habe mit diesem (reagieren-Router 2.0) browserHistory auf einem Router einzurichten:browserHistory.push nicht navigieren nicht auf neue Seite
import { browserHistory } from 'react-router'
function requireAuth(nextState, replace) {
if (!services.auth.loggedIn()) {
replace({
pathname: '/login',
state: { nextPathname: nextState.location.pathname }
})
}
}
export default (store) => (
<Router history={browserHistory}>
<Route path='/' component={AppLayout}>
<Route path="login" component={LoginContainer} />
<Route path="map" component={MapContainer} onEnter={requireAuth} />
</Route>
</Router>
);
ich dann in reagieren-Router zu verwenden browserHistory versuchen programmatisch Weg zu einer neuen Seite aus einer Sicht, ala:
import { browserHistory } from 'react-router'
...
browserHistory.push('/map');
Dies ändert die URL/Karte aber macht die Komponenten nicht in dieser Strecke. Was mache ich falsch?
Kann ich Ihren 'requireAuth'-Handler sehen, auch die Kartenansicht? –
ok - hinzugefügt. Hinweis: Das Gleiche passiert (/ map wird nicht gerendert), wenn ich das onEnter-Attribut nicht habe. – outside2344
ja - die browserHistory.push ('/ map') wird aufgerufen - und ich sehe die URL ändern, aber die neue Route-Komponente (MapContainer) wird nicht gerendert. Schließlich, aus Vollständigkeit, wenn ich auth ausschalte und direkt zu/map gehe, wird es richtig gerendert. – outside2344