close

昨天使用button onPress屬性呼叫function test做別的事

onPress={this.test}

一開始function test是寫成一般呼叫形式,function test(){ ... }

然後function test裏頭用到別的function都會使用this.加上function name,this.otherfunction();

但是一直噴錯,顯示this.otherfunction is undefined..... = ="

 

搞了一陣子才知道,function test裏頭的this是button物件,不是整個window,所以呼叫otherfunction當然是undefined

function test要改成arrow function寫法,test = () => { ... },裏頭的this才會是整個window

 

另外一種解法是在button onPress屬性呼叫function時,加上bind(this),把外面的this綁進去

ex: onPress={this.test.bind(this)}

或是寫成arrow function,

onPress={() => this.test()}

 

可參考之前轉的 [RN][轉] react native組件傳遞參數值給方法

--

--

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 dizzy03 的頭像
    dizzy03

    碎碎念

    dizzy03 發表在 痞客邦 留言(0) 人氣()