警告:React.createElement:类型不应为空或未定义
Warning: React.createElement: type should not be null or undefined
期望下面的代码将无序列表及其子 <"li" />
节点附加到 document.body,<"ul" />
没问题,但没有任何子节点并且在控制台:
React.createElement: type should not be null or undefined. It should be a string (for DOM elements) or a ReactClass (for composite components).
(React.js ver.0.13)
var ListView = React.createClass({
render: function() {
var items = this.props.data.map(function(item) {
return ItemDelegate({key:item.id, data:item.id});
}.bind(this));
return (React.createElement('ul', null, items));
}
});
var ItemDelegate = React.createFactory(ListViewChildren);
var ListViewChildren = React.createClass({
render: function(){
return (React.createElement('li', {key: this.props.key, data: this.props.data}));
}
});
var Wrapper = React.createClass({
render: function() {
return (React.createElement(ListView, {data: [/*some data*/]}));
}
});
React.render(React.createElement(Wrapper), document.body);
它是什么 type 并且必须在何处声明规定的 type?我想在某个地方对这个概念有完全的误解,但是在哪里呢?
警告来自
var ItemDelegate = React.createFactory(ListViewChildren);
ListViewChildren
定义如下,因此 React 无法创建工厂。
只要移动上面的var ListViewChildren = ...
,警告就会消失。
您在 ListView
class 中也有问题:您的 items
应该是 children 而不是 props:
// items as props (2nd arg): won't work, html elements don't have props :)
return (React.createElement('ul', items));
// items as children (3rd arg) should work better
return (React.createElement('ul', null, items));
期望下面的代码将无序列表及其子 <"li" />
节点附加到 document.body,<"ul" />
没问题,但没有任何子节点并且在控制台:
React.createElement: type should not be null or undefined. It should be a string (for DOM elements) or a ReactClass (for composite components).
(React.js ver.0.13)
var ListView = React.createClass({
render: function() {
var items = this.props.data.map(function(item) {
return ItemDelegate({key:item.id, data:item.id});
}.bind(this));
return (React.createElement('ul', null, items));
}
});
var ItemDelegate = React.createFactory(ListViewChildren);
var ListViewChildren = React.createClass({
render: function(){
return (React.createElement('li', {key: this.props.key, data: this.props.data}));
}
});
var Wrapper = React.createClass({
render: function() {
return (React.createElement(ListView, {data: [/*some data*/]}));
}
});
React.render(React.createElement(Wrapper), document.body);
它是什么 type 并且必须在何处声明规定的 type?我想在某个地方对这个概念有完全的误解,但是在哪里呢?
警告来自
var ItemDelegate = React.createFactory(ListViewChildren);
ListViewChildren
定义如下,因此 React 无法创建工厂。
只要移动上面的var ListViewChildren = ...
,警告就会消失。
您在 ListView
class 中也有问题:您的 items
应该是 children 而不是 props:
// items as props (2nd arg): won't work, html elements don't have props :)
return (React.createElement('ul', items));
// items as children (3rd arg) should work better
return (React.createElement('ul', null, items));