2017-02-02 77 views
2

訪問狀態我有一個組件在本地做出反應:如何從回調函數

export default class Screen extends Component { 
    constructor(props){ 
    super(props); 
    this.state = { 
     prop1: false, 
     prop2: simpleFunc 
    }; 
    } 
    simpleFunc =() => { /*...*/ } 

    componentWillMount() { 
     BackgroundGeolocation.on('location', this.onLocation); 

的最後一行是回調方法,將在新的位置被調用。
從該方法我不能訪問this.statethis.simpleFunc()

我應該怎麼做才能從回調函數更新狀態?

+0

是因爲您使用了箭頭功能嗎? – evolutionxbox

+0

在位置看起來像這樣:'onLocation(location){' – 1110

回答

3

爲了訪問this內部onLocation需要回調綁定:

componentWillMount() { 
     BackgroundGeolocation.on('location', this.onLocation.bind(this)); 

,或者可以使用一個箭頭功能(其將使用父的詞法作用域):

componentWillMount() { 
     BackgroundGeolocation.on('location', (location) => this.onLocation(location));