2016-10-11 23 views
2

Ich versuche den Router in meiner App mit redux und statuslosen Komponenten einzurichten.Requisiten an Router übergeben, mit redux und react-router

Hier habe ich meine routes.jsx Datei:

const TodoApp = (props) => { 
    return (
     <div> 
      {props.children} 
      <Footer /> 
     </div> 
    ) 
}; 

export default (
    <Route component={TodoApp}> 
     <Route path='/' component={TodoList} /> 
    </Route> 
); 

Zunächst einmal props.children funktioniert nicht. Ich weiß nicht, was da drin falsch ist.

Natürlich, ich habe meine AppRoot.jsx:

export default (
    <Provider store={store}> 
     <Router history={history}> 
      {routes} 
     </Router> 
    </Provider> 
) 

wo {Routen} sind die Routen oben. Was ich hier eigentlich versuche, ist eine Art Vorlage, wo die Fußzeile (und die Navigationsleiste oder was auch immer) immer da ist, und dann ändere ich die mit was auch immer auf der Route ist (TodoList in diesem Beispiel)

+0

Der Fehler nicht Sie auf dem Laufenden in den Code sein sieht. Kannst du das beobachtete Verhalten beschreiben? Was meinst du mit "props.children" funktioniert nicht? Sind Sie sicher, dass die '' Komponente gerendert wird, sowie die beiden verschachtelten '' Komponenten? Setzen Sie einige schnelle 'console.log' Aufrufe und sehen Sie, was aufgerufen wird und was nicht – slezica

Antwort

1

Versuchen zu Exportkomponente Funktion statt Instanz in routes.jsx

export default() => (
    <Route component={TodoApp}> 
     <Route path='/' component={TodoList} /> 
    </Route> 
); 

und AppRoot.jsx:

export default() => (
    <Provider store={store}> 
     <Router history={history}> 
      {routes} 
     </Router> 
    </Provider> 
); 

Ausführliche Beispiele werfen Sie einen Blick hier: https://github.com/reactjs/react-router-redux

+0

nicht funktioniert. Jetzt bekomme ich "Uncaught Invariant Violation: ReactDOM.render(): Ungültiges Komponentenelement. Übergeben Sie eine Komponentenklasse nicht, indem Sie sie an React.createElement übergeben." – JVilla

+0

Könnten Sie bitte einen Code angeben, mit dem Sie Root in das DOM rendern? versuchen, es zu etw wie folgt zu ändern: ReactDOM.render (, document.getElementById ('root')) – savbace

Verwandte Themen