1

Ich verwende react-router-redux von diesem Repo https://github.com/reacttraining/react-router/tree/master/packages/react-router-redux, um meine Anwendung zu routen. Aber ich bekomme immer unter Fehlern in meiner Browser-Konsole:Get `Element Typ ist ungültig: erwartet ein String` Fehler bei der Verwendung von react-Redux-Router

Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports. 

Im Folgenden ist der Quellcode von App Komponente. All diese Codes sind das vordere Ende:

const history = createHistory(); 
const rMiddleware = routerMiddleware(history); 
const logger = createLogger({ 
    log: 'info', 
}); 

const store = compose(
    applyMiddleware(thunk, authMiddleware, rMiddleware, logger) 
)(createStore)(combineReducers({...reducers, router: routerReducer})); 

export default class App extends Component { 
    render() { 
    return (
     <Provider store={store}> 
     <ConnectedRouter history={history}> 
      <Switch> 
       <Route exact path="/" component={Home} /> 
      </Switch> 
     </ConnectedRouter> 
     </Provider> 
    ); 
    } 
} 

Unten ist der Hauptkomponentencode:

class Home extends React.Component { 
    render() { 
    return <div>Home</div>; 
    } 
} 
const mapStateToProps = state => { 
    return { 
    }; 
}; 

const mapDispatchToProps = dispatch => { 
    return { 
    }; 
}; 
export default connect(mapStateToProps, mapDispatchToProps)(Home); 
+0

Können wir Home & Login sehen? – Li357

+0

Ich habe den Quellcode aktualisiert. –

+0

Ich bin derzeit auf der Lernkurve des React-Routers. Immer, wenn ich diesen Fehler erhalte, ist es ein Pfadfehler in meinen Importanweisungen (ich verwende ES6-Module). Du zeigst diese hier nicht. – Faust

Antwort

2

Ok endlich das Problem aus. Es wegen einer Version Miss-Match. Ich sollte "react-router-redux": "^5.0.0-alpha.9", anstelle der Version 4.x.x verwenden, da es nicht mit react-router 4.x.x kompatibel ist.

Verwandte Themen