2016-08-22 54 views
0

我下列如下所示的应用程序文件和主要成分的react redux tutorial但我得到的错误“提供给IndexRoute无效丙component。在IndexRoute”和Uncaught TypeError: Cannot read property 'props' of undefined阵营路由器不接受成分作为丙

//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')); 

,我读了它可能是做的cloneComponent并试图与{React.cloneElement(this.props.children, {...this.props})}但无济于事,以取代部分。

//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

尝试使用'{this.props.children}'而不是'{React.cloneElement(this.props.children,this.props)}' – Alejandro

回答

0

您显示的代码没有任何问题。根据错误消息,您的组件出现问题。因为您没有正确渲染组件,所以react-router不是作为React组件。检查您的文件。为了确保,只需复制并粘贴源代码。