我正在尝试使用React,Express,MongoDB和Node构建一个简单的博客。但我仍然对(1)如何正确地向我的数据库发出ajax请求以及如何设置状态和(2)如何正确更新状态感到困惑。
我已经尝试通过发出AJAX请求来设置getInitialState,但它不起作用。另外我不知道这是不是最好的做法。此外,一旦有人添加了新帖子,我应该在哪里放置POST,然后如何正确更新状态?
var React = require('react');
var List = React.createClass({
render: function() {
return (
<div>
<h2>{this.props.postbody}</h2>
</div>
)
}
})
// I'll break this up into smaller components later, but for now I just want
// to know where to put my database entries into the posts array.
// The only field in MongoDB right now is postbody.
var Home = React.createClass({
getInitialState: function() {
return {
posts: []
}
},
handleClick: function() {
$.ajax({
type: 'GET',
url: '/api/blogPosts',
success: function(data) {
this.setState = data;
console.log(this.setState);
}
})
},
render: function() {
return (
<div>
{this.state.posts.map(function(post) {
return (
<List postbody={post.postbody}></List>
)
})}
</div>
)
}
})
答案 0 :(得分:1)
setState是一个函数,而不是要在this
上设置的属性。你应该this.setState(data)