期望下面的代码将无序列表及其子<"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).
Run Code Online (Sandbox Code Playgroud)
(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);
Run Code Online (Sandbox Code Playgroud)
什么类型是它和它在哪里,该声明的类型都将被声明?我想这个概念在某个地方完全存在误解,但在哪里呢?
al8*_*anp 15
警告来自
var ItemDelegate = React.createFactory(ListViewChildren);
Run Code Online (Sandbox Code Playgroud)
ListViewChildren 定义如下,以便React无法创建工厂.
只需移动var ListViewChildren = ...上面的内容,警告就会消失.
你在ListView课堂上也有一个问题:你items应该是孩子,而不是道具:
// 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));
Run Code Online (Sandbox Code Playgroud)
完整代码:http://jsfiddle.net/Lmb7t9pv/2/
| 归档时间: |
|
| 查看次数: |
32558 次 |
| 最近记录: |