2017-07-21 17 views
0

私はreactjsとクロムの拡張子を持っています。chrome.storage.sync.getの後の内部関数の呼び出し方法chrome extension + reactjsのコールバック?

私のコンポーネントには内部的な機能がいくつかあり、chrome.storage.sync.getのコールバックの後にそれらを呼び出しました。

しかし、私は「XXXは機能がありません」というエラーが発生しました。

ここに私のコードスニペットがあります。

class App extends React.Component { 
    func1(){} 
    func2() { 
    chrome.storage.sync.get(null, function(data) { 
     this.func1(); 
     this.setState(...); 
    }) 
    } 

} 

私はfunc1を呼び出すことができません。

答えて

0

コールバックの内部にアプリのコンテキストを保持する必要があります。この場合は、あなたのアプリ - 代わりに、独自のthis値をバインドしていない私はarrow functionにコールバックを変更

class App extends React.Component { 
    func1(){} 
    func2() { 
    chrome.storage.sync.get(null, (data) => { 
     this.func1(); 
     this.setState(...); 
    }) 
    } 
} 

注意は、それが呼び出された関数と同じコンテキストを使用しています。

+0

ありがとうございます。あなたは素晴らしい。 –

関連する問題