javascript - 根据 Ajax 调用中收到的数据 react 设置状态

标签 javascript jquery json ajax reactjs

我正在尝试使用看起来像这样的 AJAX 调用从我的服务器获取一些数据

fetch_reviews() {
    var scraper_url = this.props.thing.text
    var all_the_data = $.get({
      url: window.location.origin+'/fetch_review_data', 
      data: {scraper_url: scraper_url}
    }).success(function(data){
      this.state.allReviews = data
    });
  } 

只有我不断收到错误消息“无法读取未定义的属性 allReviews

如何从 success 函数内部设置 allReviews 的状态?

最佳答案

你应该使用 arrow function (如果你使用 ES2015)或 .bind为了设置将引用您的组件对象的 this,因为现在 this 引用全局范围(windowundefined 如果你使用 strict mode ),

// ...
.success((data) => {
   this.setState({ allReviews: data })
});

// ...
.success(function (data) {
   this.setState({ allReviews: data })
}.bind(this));

此外,如果您需要在 React 中设置新状态,则必须使用 setState方法

关于javascript - 根据 Ajax 调用中收到的数据 react 设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36140610/

相关文章:

javascript - 基本 jQuery : How to call a user defined function

javascript - json 数组,数组中返回错误?错误的字符串

java - 为 Maven 项目获取 java.lang.ClassNotFoundException : com. google.gson.Gson

javascript - 引导 slider : when a specific slide is active show or hide divs

javascript - 基于对象创建数组

javascript - Angular JS 添加新行默认处于可编辑模式

javascript - 当网站顶部为 "stick"时,如何将页脚 "near"置于底部?

javascript - AJAX 调用返回数据但失败

jquery - 通过 src 查找属性的值

javascript - 填充每行前面的复选框,并使用 json 和 jquery 发送选中/未选中的值和 ID