Javascript 未捕获错误:元素类型无效:应为字符串
我试图配置react路由器,但出现了这个奇怪的错误 未捕获错误:元素类型无效:应为字符串。。检查 主要的渲染方法 我有我的Main.jsJavascript 未捕获错误:元素类型无效:应为字符串,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
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>
)
}