在 Javascript 中调用解析查询结果块中的 class 方法

Calling class methods in parse query result block in Javascript

抱歉我的英语不好,这是我的第一个问题。我在从解析查询结果块调用方法 updateItems 时遇到问题。两种方法属于同一个class。当我执行搜索时,第一个控制台日志是唯一出现在控制台中的日志。我尝试在成功块中调用的任何 class 方法都没有执行任何操作。

handleIngredientQuery(text) {
   var Ingredient = Parse.Object.extend('Ingredient');
   var query = new Parse.Query(Ingredient);
   query.startsWith('name', text.toLowerCase());

   query.find({
     success: function (results) {
       console.log('Found ' + results.length);
       this.updateItems(results);
       console.log('finish success callback');
   },

    error: function (error) {
      alert('Error: ' + error.code + ' ' + error.message);
   },
  });
}

updateItems(results) {
  console.log('update items called');
  this.setState({ items: results }, () => {
    console.log('callback');
    console.log(this.state);
  });
}

this 在您的成功功能的不同范围内。要使 this 以您期望的方式运行,请使用 "fat arrow" 语法,如下所示:

   query.find({
     success: (results) => {
       console.log('Found ' + results.length);
       this.updateItems(results);
       console.log('finish success callback');
   },