Wcześniej skonfigurować browserHistory na routerze z tym routerem (reagują-2.0):browserHistory.push nie przejść do nowej strony
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>
);
ja potem próbuje użyć browserHistory w reagują-router programowo droga do nowej strony z myślą, ala:
import { browserHistory } from 'react-router'
...
browserHistory.push('/map');
To zmienia adres URL/mapy, ale nie czyni składników w tej trasie. Co ja robię źle?
Czy mogę zobaczyć Twój program obsługi "requireAuth", także widok mapy? –
ok - dodano. uwaga: to samo dzieje się (/ map nie jest renderowana), jeśli nie mam atrybutu onEnter. – outside2344
yes - wywoływana jest browserHistory.push ("/ map") - widzę zmianę adresu URL, ale nowy komponent Route (MapContainer) nie jest renderowany. Wreszcie, dla kompletności, jeśli wyłączę auth i przejdź do/map bezpośrednio, to renderuje się poprawnie. – outside2344