2017-07-17 59 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'); 
    },