React内三种函数的写法

本文介绍了在React中如何正确地绑定函数内的this上下文,包括使用bind、箭头函数以及在事件处理中直接绑定的方法。这三种方法都能确保函数内的this指向组件实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 以下提供三种React内函数的写法,都可以正常运行,有疑问可以留言

 

写法一:让函数内部的this指向这个类的实例,它是用bind实现的,bind的第一个参数表示context,就是this。 

//写法一
class ManageAddress extends React.Component {

    constructor(props) {
        super(props);
        this.handleChangeAddressType = this.handleChangeAddressType.bind(this)
... }
/** * 切换地址类型,重新获取地址列表 * @param key */ handleChangeAddressType(key) { ... }; render() { return ( ... <button onClick={this.handleChangeAddressType}>测试 </button > ... ) }
}

 

写法二:相当于让handleChangeAddressType的值为一个箭头函数,所以调用处直接传入这个值就可以,注意不能加括号会报错。而箭头函数的特性我们都知道:它不会自己创建this,它会从自己的作用域链上层继承this,这里this就会指向这个类的实例。这不是js标准写法,但是babel已经支持了。

//写法二
class ManageAddress extends React.Component {

    constructor(props) {
        super(props);
        ...
    }

    /**
     * 切换地址类型,重新获取地址列表
     * @param key
     */
    handleChangeAddressType = (key) =>{
     ...
    };

  render() {
        return (
            ...
            <button onClick={this.handleChangeAddressType}>测试
            </button >
           ...
        )
    }
}

 

写法三:在调用处使用箭头函数,与第二种方法类似

//写法三
class ManageAddress extends React.Component {

    constructor(props) {
        super(props);
        ...
    }

    /**
     * 切换地址类型,重新获取地址列表
     * @param key
     */
    handleChangeAddressType(key) {
     ...
    };

  render() {
        return (
            ...
            <button onClick={(key)=>this.handleChangeAddressType(key)}>测试
            </button >
           ...
        )
    }
}

 

转载于:https://www.cnblogs.com/xiaochengzi/p/9674709.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值