2016-08-22 4 views
0

Ich folge ein react redux tutorial mit der App-Datei und Hauptkomponente unten gezeigt, aber ich bekomme die Fehlermeldung „Invalid prop component-IndexRoute geliefert. In IndexRoute“ und Uncaught TypeError: Cannot read property 'props' of undefined.Reagieren Router nicht Komponente als Stütze zu akzeptieren

//app file 


import React from 'react'; 

import { render } from 'react-dom'; 


// Import Components 
import Main from './components/Main'; 
import Single from './components/Single'; 
import PhotoGrid from './components/PhotoGrid'; 

// import react router deps 
import { Router, Route, IndexRoute, browserHistory } from 'react-router'; 

const router = (
    <Router history={browserHistory}> 
    <Route path="/" component={Main}> 
     <IndexRoute component={PhotoGrid}></IndexRoute> 
     <Route path="/view/:postId" component={Single}></Route> 
    </Route> 
    </Router> 
) 

render(router, document.getElementById('root')); 

ich gelesen, dass es etwas mit dem cloneComponent zu tun sein könnte und hat versucht, auch diesen Teil {React.cloneElement(this.props.children, {...this.props})} zu ersetzen, aber ohne Erfolg.

//main 

import React from 'react'; 
import { Link } from 'react-router'; 

const Main = React.createClass({ 
    render() { 
    return (
     <div> 
     <h1> 
      <Link to="/">Reduxstagram</Link> 
     </h1> 
     {React.cloneElement(this.props.children, this.props)} 
     </div> 
    ) 
    } 
}); 

export default Main; 
+0

versuchen Sie '{this.props.children}' anstelle von '{React.cloneElement (this.props.children, this.props)}' – Alejandro

Antwort

0

Es ist nichts falsch mit dem Code, den Sie zeigten. Laut der Fehlermeldung ist mit Ihrer Komponente etwas nicht in Ordnung. Da Sie die Komponente nicht ordnungsgemäß rendern, ist react-router nicht als eine React-Komponente. Überprüfen Sie Ihre Datei. Kopieren Sie den Code und fügen Sie ihn aus der Quelle ein.

Verwandte Themen