Javascript 未捕获错误:元素类型无效:应为字符串

Javascript 未捕获错误:元素类型无效:应为字符串,javascript,reactjs,Javascript,Reactjs,我试图配置react路由器,但出现了这个奇怪的错误 未捕获错误:元素类型无效:应为字符串。。检查 主要的渲染方法 我有我的Main.js import React from 'react' import { Link } from 'react-router' const Main = (props) => { return ( <div> <h1> <Link to="/">Reduxstagram</L

我试图配置react路由器,但出现了这个奇怪的错误

未捕获错误:元素类型无效:应为字符串。。检查 主要的渲染方法

我有我的Main.js

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

const Main = (props) => {
  return (
    <div>
      <h1>
        <Link to="/">Reduxstagram</Link>
      </h1>
      {React.createElement(props.children, props)}
    </div>
  )
}

export default Main
从“React”导入React
从“反应路由器”导入{Link}
常量Main=(道具)=>{
返回(
雷多克斯泰格拉姆
{React.createElement(props.children,props)}
)
}
导出默认主
这是我的index.js

import Main from './components/Main'
import Single from './components/Single'
import PhotoGrid from './components/PhotoGrid'

//routes
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'));
import Main from./components/Main'
从“./components/Single”导入单个
从“./components/PhotoGrid”导入PhotoGrid
//路线
从“react Router”导入{Router,Route,IndexRoute,browserHistory}
常数路由器=(
)
render(router,document.getElementById('root'));
我想这可能是因为我不知道。如果我这么做的话

render(<Main>hi</Main>, document.getElementById('root'));
render(hi,document.getElementById('root');

我能看到它在工作。奇怪。

main.js的
返回中
您可以只使用
{props.children}
而不需要
React.createElement

const Main = (props) => {
  return (
    <div>
      <h1>
        <Link to="/">Reduxstagram</Link>
      </h1>
      {props.children}
    </div>
  )
}

您使用React.createElement的方式不正确。请看这里,第一个参数应该是字符串或react组件,但子类的支柱如何进入其子类?Main还有其他组件。路由器可以通过它们
const router = (
  <Router history={browserHistory}>
    <Route path="/" component={Main} myProp={"this is a prop!"}>
      <IndexRoute component={PhotoGrid}></IndexRoute>
      <Route path="/view/:postId" component={Single}></Route>   
    </Route>
  </Router>
)
const Main = (props) => {
  return (
    <div>
      <h1>
        <Link to="/">Reduxstagram</Link>
      </h1>
      {props.route.myProp}
    </div>
  )
}