我是新手,我正在尝试构建一些东西来学习它的概念。
我已经创建了一些反应组件,但无法弄清楚为什么我的Post
组件在 JSON 请求成功完成后没有被渲染。
注意:Posts
和PostList
组件正在渲染没有问题。
我在这里想念什么?
/** @jsx React.DOM */
var Posts = React.createClass({
render: function() {
return (
<div className="posts">
<h3>Featured Jobs</h3>
<PostList />
<p>More Awesome Jobs →</p>
</div>
)
}
});
var PostList = React.createClass({
getInitialState: function() {
return { posts: [
] };
},
componentDidMount: function() {
$.getJSON('/api/posts', function(results) {
this.setState({
posts: results
});
}.bind(this));
},
render: function() {
var posts = this.state.posts.map(function(post) {
return <PostListItem post={post} />;
});
return <ul className='post-list'>{posts}</ul>;
}
});
var PostListItem = React.createClass({
handleClick: function(e) {
var post_id = this.props.post.id;
var path = '/api/posts/' + post_id;
$.getJSON(path, function(post) {
return <Post title={post.title} location={post.location} description={post.description} />;
});
},
render: function() {
return (
<div className="post-item">
<li key={this.props.post.id}><a href="#" onClick={this.handleClick}>{this.props.post.title}</a></li>
</div>
);
}
});
var Post = React.createClass({
render: function() {
return(
<div className="post">
<h1>{this.props.title}</h1>
<h2>{this.props.location}</h2>
<p>{this.props.description}</p>
</div>
);
}
});
ps:我正在通过 rails 助手渲染 Posts 组件,但您可以假设它工作正常。
先感谢您 :)