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

标签 javascript ajax node.js mongodb reactjs

我正在尝试使用 React、Express、MongoDB 和 Node 构建一个简单的博客。但我仍然对(1)如何正确向数据库发出 ajax 请求以及如何设置状态和(2)如何正确更新状态感到困惑。

我尝试通过发出 AJAX 请求来设置 getInitialState,但它不起作用。我也不知道这是否是最佳实践。另外,一旦有人添加了新帖子,我应该将帖子放在哪里,然后如何正确更新状态?

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>

    )
  }
})

最佳答案

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

关于javascript - 如何从 MongoDB 中提取项目并在输入新项目时更新它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33795557/

相关文章:

javascript - bootstrap 4 中的 popper.js 给出 SyntaxError Unexpected token export

ajax - JQuery - 如何提交动态创建的表单?

javascript - react : how to get input value from one component to make the ajax call in another component?

javascript - 将数据从 javascript 文件传递​​到 Nodejs 服务器 - Nodejs

javascript - 在 Javascript 函数中嵌套 jQuery 以从显示 :None 淡入 Div

javascript - 在javascript dom中,是否有tagName到HTMLElement的映射?

javascript - node.js/JavaScript 语法 - 向传递的参数添加额外的参数

javascript - 如何使用正则表达式从字符串中提取特定字符

Javascript 测试 : Inconsistent number of tests

javascript - 如何在没有 ASYNC : FALSE 的情况下继续之前等待每个循环中的 AJAX 调用完成