2017-07-17 57 views
1

对不起,我的英语,这是我的第一个问题。我无法从分析查询结果块中调用方法updateItems。两种方法属于同一类。当我执行搜索时,第一个控制台日志是唯一出现在控制台中的日志。我试图在成功块中调用的任何类方法都没有做任何事情。在Javascript中调用分析查询结果块的类方法

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); 
    }); 
} 

回答

1

this对于您的成功功能处于不同的范围。要使this按照您期望的方式行事,请使用如下所示的“胖箭头”语法:

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