ReactNative點擊事件.bind(this)操作分析
一、前言
在React或React-native的點擊事件中,會經(jīng)常用到bind(this)。比如說一個簡單的React-native點擊組件:
export default class AwesomeProject extends Component {
constructor(props){
super(props);
this.state = {
}
}
handleClick () {
console.log('this is:',this);
}
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome} onPress={this.handleClick.bind(this)}>
Welcome to React Native!
</Text>
</View>
);
}
}在上面的代碼中,我們對點擊事件函數(shù)進行了bind(this)操作,如果不bind(this)的this會怎么樣?


上圖是執(zhí)行了.bind(this)的,而下圖是沒有.bind(this)的。由執(zhí)行結(jié)果可知,如果沒有bind(this),在執(zhí)行這個函數(shù)時,取到的this是這個text組件。
二、React中bind方法的選擇
因為箭頭函數(shù)與bind(this)的作用是一樣的,()=>{} 這種形式的代碼,語法規(guī)定就是(function(){}).bind(this),即自動添加了bind(this)。所以我們可以有4種選擇:
//寫法1
<View onPress={this.handleClick.bind(this)}></View>
//寫法2
constructor(props){
super(props);
this.handleClick = this.handleClick.bind(this);
}
//寫法3
<View onPress={()=>this.handleClick()}>
//寫法4
handleClick = () => {
}因為bind方法會重新生成一個新函數(shù),所以寫法2和寫法3每次render都會生成新的函數(shù),所以建議使用1或4。
以上就是ReactNative點擊事件.bind(this)操作分析的詳細內(nèi)容,更多關(guān)于ReactNative點擊事件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
react實現(xiàn)一個優(yōu)雅的圖片占位模塊組件詳解
這篇文章主要給大家介紹了關(guān)于react如何實現(xiàn)一個還算優(yōu)雅的占位模塊圖片組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-10-10

