如何从MongoDB中提取项目并在输入新项目时更新它们?

时间:2015-11-19 04:58:02

标签: javascript ajax node.js mongodb reactjs

我正在尝试使用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>

    )
  }
})

1 个答案:

答案 0 :(得分:1)

setState是一个函数,而不是要在this上设置的属性。你应该this.setState(data)