首页 > 其他 > 详细

react事件处理函数中绑定this的bind()函数

时间:2018-04-06 21:58:54      阅读:314      评论:0      收藏:0      [点我收藏+]

问题引入

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.times
    time++
    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

 

如果 觉得文章不错,可以请博主喝一杯奶茶哦!!!

技术分享图片技术分享图片

 

react事件处理函数中绑定this的bind()函数

原文:https://www.cnblogs.com/zuobaiquan01/p/8728949.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!