在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的获取位置作参考,希望对各位有所帮助