我想學習ReactJS此刻,所有不同的教程使用ES5/ES6和所有React版本的其他差異至少可以說是有點令人沮喪。任何人都可以看到爲什麼下面的代碼會拋出以下錯誤到控制檯?React JS錯誤需要ReactRouter後 - 警告:React.createElement:類型不應該爲空,未定義,布爾值或數字
錯誤消息:
警告:React.createElement:類型不能爲空,未定義的,布爾型,或數量。它應該是一個字符串(對於DOM元素)或一個ReactClass(對於複合組件)
未捕獲的不變式違例:元素類型無效:預期爲字符串(對於內置組件)或類/函數)但得到:對象。
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'));
偉大的工作,所以這個問題實際上是我的組件? –
James
是的。我認爲問題在這裏:component = {StorePicker}。你不應該使用引號。 –