Réagir routeur privé routes / redirection ne fonctionne pas

J'ai légèrement modifié la Réagir Routeur exemple pour le secteur privé, des itinéraires à jouer gentil avec Redux, mais aucun des composants sont rendus lors de la Liaison ou de Rediriger vers d'autres pages. L'exemple peut être trouvé ici:

https://reacttraining.com/react-router/web/example/auth-workflow

Leur PrivateRoute composant ressemble à ceci:

const PrivateRoute = ({ component: Component, ...rest }) => (
  <Route {...rest} render={props => (
    fakeAuth.isAuthenticated ? (
      <Component {...props}/>
    ) : (
      <Redirect to={{
        pathname: '/login',
        state: { from: props.location }
      }}/>
    )
  )}/>
)

Mais, parce que j'ai incorporé dans un Redux de l'application, j'ai dû régler la PrivateRoute un peu afin que je puisse accéder à la redux magasin, ainsi que le parcours des Accessoires:

const PrivateRouteComponent = (props) => (
    <Route {...props.routeProps} render={() => (
    props.logged_in ? (
        <div>{props.children}</div>
        ) : (
        <Redirect to={{
            pathname: '/login',
            state: { from: props.location }
        }} /> )
    )} />
);

const mapStateToProps = (state, ownProps) => {
    return {
        logged_in: state.auth.logged_in,
        location: ownProps.path,
        routeProps: {
            exact: ownProps.exact,
            path: ownProps.path
        }
    };
};

const PrivateRoute = connect(mapStateToProps, null)(PrivateRouteComponent);
export default PrivateRoute

Chaque fois que je ne suis pas connecté et a frappé un PrivateRoute, je suis correctement redirigé vers /login. Cependant, après par exemple connectant et en utilisant un <Redirect .../>, ou en cliquant sur l'un <Link ...> à un PrivateRoute, l'URI de mises à jour, mais la vue n'est pas. Il reste sur le même composant.

Ce que je fais mal?


Juste pour compléter le tableau, dans l'application de la index.js il y a quelque chose sans pertinence, et les itinéraires sont mis en place comme ceci:

ReactDOM.render(
    <Provider store={store}>
        <App>
            <Router>
                <div>
                    <PrivateRoute exact path="/"><Home /></PrivateRoute>
                    //... other private routes
                    <Route path="/login" component={Login} />
                </div>
            </Router>
        </App>
    </Provider>,
    document.getElementById('root')
);
InformationsquelleAutor Rein | 2017-04-20