我正在关注this intro to React guide以及原始fb react tutorial,使用Rails作为后端。我已经拆分了我的文件,它们一起正常工作到this point。
在尝试设置getInitialState
为我的CommentBox
提供道具时,我收到Cannot read property 'map' of undefined
的错误,这意味着React无法找到空的数组[]
据称设定并发送给CommentList
。如何确保getInitialState
实际设置data
道具?
var CommentBox = React.createClass({
getInitialState: function(){
return {data: []};
},
render: function(){
return(
<div className="commentBox">
<h1> Comments! </h1>
<CommentList data={this.props.data} />
<CommentForm />
</div>
);
}
});
var ready = function(){
React.render(
<CommentBox />,
document.getElementById('content')
);
};
$(document).ready(ready);
然后,整个代码都托管在this repo中。谢谢!
编辑:评论列表代码:
var CommentList = React.createClass({
commentNodes: function(){
var nodes = this.props.data.map(function(d){
return(
<Comment author={d.author}>
{d.text}
</Comment>
);
});
return nodes;
},
render: function(){
return(
<div className="commentList">
This is the comment list.
{this.commentNodes()}
</div>
);
}
});
答案 0 :(得分:0)
想出来。基本上:
data
道具,因为它是一个州而不存在。 CommentList
后,它变为prop
,并且可以从那里访问它。 学习了。