react onClick事件写法

在react中调用方法,即:

import React from 'react';
class Demo extends React.Component {
    constructor(props){
        super(props);
    }
    runFun() {
        console.log("run");
    }
    render(){
        return(
            <div>
                <button onClick={this.runFun()}>run</button>
            </div>
        )
    }
}

此时在你没点击时,这个方法就已经触发了。
这里我们就不能加 () ,而写成

	<button onClick={this.runFun}>run</button>

但是这里又存在一个问题,我如果想传递参数该怎么办呢?
这里有两种方法:

第一种方法

这里我们可以对以上的写法稍加修改:

	<button onClick={(event)=>this.runFun('data')}>run</button>

这里,我们通过放入一个箭头函数的方式让方法体runFun携带参数,执行箭头函数后返回带有携带参数的方法体runFun提供调用

第二种方法
在不改变botton的写法,修改runFun方法体,即:

	 runFun = (target) => {
        return (event) => {
          console.log(target)
        }
      }

这里,其实意思跟第一种方法一样。虽然button里写的是带括号的,但是返回的是一个未调用的方法。然后再通过点击事件调用。灵活使用科里化函数解决了该问题。

以上两种方法都写入了event的获取位置作参考,希望对各位有所帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值