2017-07-17 8 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は、あなたの成功のためには異なる範囲にあります。 が期待通りの振る舞いをするには、「太い矢印」の構文を使用します。

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