【发布时间】:2016-04-28 10:03:11
【问题描述】:
我目前正在尝试学习 ReactJS,所有不同的教程都使用 ES5 / ES6 以及 React 版本的所有其他差异,至少可以说有点令人沮丧。谁能明白为什么下面的代码会向控制台抛出以下错误?
错误信息:
警告:React.createElement:类型不应为 null、未定义、布尔值或数字。它应该是一个字符串(对于 DOM 元素)或一个 ReactClass(对于复合组件)
Uncaught Invariant Violation:元素类型无效:期望字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象。
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Navigation } from 'react-router'
/*
Main App layout
*/
var App = React.createClass ({
render: function () {
return (
<div className="catch-of-the-day">
<div className="menu">
<Header tagline="Seafood and Eat it!"/>
</div>
<Order/>
<Inventory/>
</div>
)
}
});
/* Header */
var Header = React.createClass ({
render: function() {
return (
<header className="top">
<h1>Catch
<span className="ofThe">
<span className="of">of</span>
<span className="the">the</span>
</span>
day</h1>
<h3><span>{this.props.tagline}</span></h3>
</header>
)
}
});
/* Order */
var Order = React.createClass ({
render: function() {
return (
<p>Order</p>
)
}
});
/* <Inventory/> */
var Inventory = React.createClass ({
render: function() {
return (
<p>Inventory</p>
)
}
});
/*
Store Picker
This will let us make <StorePicker/>
*/
var StorePicker = React.createClass ({
render: function () {
return (
<form className="store-selector">
<h2>Please enter a store</h2>
<input type="text" ref="storeId" />
<input type="submit" />
</form>
)
}
});
/*
Routes
*/
var Routes = (
<Router>
<Route path="/" component={StorePicker} />
<Route path="/store/:storeid" component={App} />
</Router>
)
ReactDOM.render(<Routes/>, document.querySelector('#main'));
【问题讨论】:
标签: reactjs