0

Ich versuche, den Benutzer auf eine Anmeldeseite umzuleiten, wenn er versucht, auf eine Seite zuzugreifen, für die einige Berechtigungen erforderlich sind. Grundsätzlich erfordert die Route /, dass der Benutzer angemeldet ist, so dass ich sie an /signin umleiten, wenn sie nicht sind.Ist react-router-dom <Redirect /> nicht mit syncHistoryWithStore arbeiten?

Mit syncHistoryWithStore von react-router-redux passiert die Weiterleitung einfach nicht. Wenn ich es entferne, funktioniert es wie erwartet.

Ist syncHistoryWithStore mit der neuesten Version von react-router-dom inkompatibel?

Hier ist ein reproduction. Sie können die Verlaufszeile, die syncHistoryWithStore nicht verwendet, auskommentieren und feststellen, dass sie wie erwartet funktioniert.

Einbetten des Codes hier auf Stackoverflow.

import React from 'react'; 
 
import ReactDOM from 'react-dom'; 
 
import { Provider } from 'react-redux'; 
 
import { createStore, combineReducers } from 'redux'; 
 
import { createBrowserHistory } from 'history'; 
 
import { Router, Route, Redirect } from 'react-router-dom'; 
 
import { syncHistoryWithStore, routerReducer } from 'react-router-redux'; 
 

 
const store = createStore(
 
    combineReducers({ 
 
    routing: routerReducer 
 
    }) 
 
); 
 

 
const history = syncHistoryWithStore(createBrowserHistory(), store); 
 
//const history = createBrowserHistory(); 
 

 
function SignIn(){ 
 
    return (
 
    <div>This is SignIn.</div> 
 
); 
 
} 
 

 
function Home(){ 
 
    return (
 
    <div>This is Home.</div> 
 
); 
 
} 
 

 
const isLoggedIn = false; 
 

 
ReactDOM.render(
 
    <Provider store={store}> 
 
    <Router history={history}> 
 
     <div> 
 
     <Route exact path="/signin" component={SignIn} /> 
 
     <Route 
 
      exact 
 
      path="/" 
 
      render={() => isLoggedIn ? <Home /> : <Redirect to="/signin" />} 
 
     /> 
 
     </div> 
 
    </Router> 
 
    </Provider>, 
 
    window.document.getElementById('root') 
 
);

+1

react-router-redux unterstützt react-router v4 nicht. Siehe die Readme https://github.com/reactjs/react-router-redux –

+0

Dank Kumpel, war so überwältigt mit all den Informationen, die ich nicht bemerkte, dass kleine Satz. – Gabin

Antwort

0

Wie Tharaka wies darauf hin, erwähnt die readme, dass reagieren-Router v4 noch nicht unterstützt wird.

Verwandte Themen