在ReactNative中,Text、Button以及其他Touchable包裝成的可點擊控件,都可以通過onPress屬性為其指定點擊時的響應函數。
在有些情況下,我們會把這些點擊函數先定義好,然后再為控件的onPress屬性賦值為對應函數名。然而這個時候,問題就出來了:
一:有bug的用法
<Button
onPress={方法名}/>
當這樣為onPress屬性指定響應方法時,會出現隨着控件的渲染而自動調用響應函數的情況。
原因:
在RN的頁面代碼中,花括號 {} 有取對象值的意思在內,而方法也是對象的一種,因此,這里並不單單是為onPress指定屬性值那么簡單,在賦值的同時還自動調用了一次該響應方法。
二:正確的用法
使用箭頭函數為onPress定義響應函數,箭頭函數內調用對應的響應函數即可。
<Button onPress={()=>{ 點擊事件的響應函數 } }/>