react事件处理函数中绑定this的bind()函数
生活随笔
收集整理的這篇文章主要介紹了
react事件处理函数中绑定this的bind()函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題引入
import React, { Component } from 'react'; import {Text,View } from 'react-native';export default class App extends Component<Props> {constructor(props){super(props)this.state={times:0}this.timePlus=this.timePlus.bind(this);}timePlus(){let time=this.state.timestime++this.setState({times:time})}render() {return (<View><Text onPress={this.timePlus}>有本事點我呀</Text>//<Text onPress={this.timePlus.bind(this)}>有本事點我呀</Text>
<Text>你點了我{this.state.times}次</Text> </View>
);
}
}
每次在處理事件函數時都需要綁定this的bind函數;
?
bind() 最簡單的用法是創建一個函數,使這個函數不論怎么調用都有同樣的 this 值。
bind()方法會創建一個新函數,當這個新函數被調用時,它的this值是傳遞給bind()的第一個參數, 它的參數是bind()的其他參數和其原本的參數.?
this.x = 9; var module = {x: 81,getX: function() { return this.x; } };module.getX(); // 返回 81 var retrieveX = module.getX; retrieveX(); // 返回 9, 在這種情況下,"this"指向全局作用域// 創建一個新函數,將"this"綁定到module對象 var boundGetX = retrieveX.bind(module); boundGetX(); // 返回 81?
從實例可以看出:React構造方法中的bind會將handleClick函數與這個組件Component進行綁定以確保在這個處理函數中使用this時可以時刻指向這一組件。
?
源碼地址:https://github.com/zuobaiquan/react-native/tree/master/myExercise/firstProject
轉載于:https://www.cnblogs.com/zuobaiquan01/p/8728949.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的react事件处理函数中绑定this的bind()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 检查男人不育到驻马店哪家医院好
- 下一篇: Chrome无法播放m3u8格式的直播视