ReactNative點(diǎn)擊事件.bind(this)操作分析
一、前言
在React或React-native的點(diǎn)擊事件中,會(huì)經(jīng)常用到bind(this)。比如說一個(gè)簡單的React-native點(diǎn)擊組件:
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> ); } }
在上面的代碼中,我們對(duì)點(diǎn)擊事件函數(shù)進(jìn)行了bind(this)操作,如果不bind(this)的this會(huì)怎么樣?
上圖是執(zhí)行了.bind(this)的,而下圖是沒有.bind(this)的。由執(zhí)行結(jié)果可知,如果沒有bind(this),在執(zhí)行這個(gè)函數(shù)時(shí),取到的this是這個(gè)text組件。
二、React中bind方法的選擇
因?yàn)榧^函數(shù)與bind(this)的作用是一樣的,()=>{} 這種形式的代碼,語法規(guī)定就是(function(){}).bind(this),即自動(dòng)添加了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 = () => { }
因?yàn)閎ind方法會(huì)重新生成一個(gè)新函數(shù),所以寫法2和寫法3每次render都會(huì)生成新的函數(shù),所以建議使用1或4。
以上就是ReactNative點(diǎn)擊事件.bind(this)操作分析的詳細(xì)內(nèi)容,更多關(guān)于ReactNative點(diǎn)擊事件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- ReactNative集成個(gè)推消息推送過程詳解
- React Native 資源包拆分實(shí)戰(zhàn)分析
- React?Native與iOS?OC之間的交互示例詳解
- React?Native項(xiàng)目設(shè)置路徑別名示例
- 一文詳解ReactNative狀態(tài)管理rematch使用
- 一文詳解ReactNative狀態(tài)管理redux-toolkit使用
- ReactNative?狀態(tài)管理redux使用詳解
- react?native?reanimated實(shí)現(xiàn)動(dòng)畫示例詳解
- React Native按鈕Touchable系列組件使用教程示例
相關(guān)文章
解決React報(bào)錯(cuò)No duplicate props allowed
這篇文章主要為大家介紹了React報(bào)錯(cuò)No duplicate props allowed解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12React如何實(shí)現(xiàn)瀏覽器打印部分內(nèi)容詳析
這篇文章主要給大家介紹了關(guān)于利用React如何實(shí)現(xiàn)瀏覽器打印部分內(nèi)容的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用React具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05react中如何使用定義數(shù)據(jù)并監(jiān)聽其值
這篇文章主要介紹了react中如何使用定義數(shù)據(jù)并監(jiān)聽其值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01react-redux的connect與React.forwardRef結(jié)合ref失效的解決
這篇文章主要介紹了react-redux的connect與React.forwardRef結(jié)合ref失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05react+ts實(shí)現(xiàn)簡單jira項(xiàng)目的最佳實(shí)踐記錄
這篇文章主要介紹了react+ts實(shí)現(xiàn)簡單jira項(xiàng)目,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07