React中可以向onClick(onSubmit,onChange等同理)中传入一个函数,这个函数会在组件被click时执行:

1
2
3
<button onClick={() => {
// some code to execute after button clicked
}}>

这个函数可以接受一个参数,即event:

1
2
3
4
<button onClick={(event) => {
// some code to execute after button clicked
// you can use event object to do something, such as event.target.value
}}>

同时也可以在函数体中使用该component内,该函数外定义的其他变量,且这些变量不需要通过该函数的参数传入,e.g.

1
2
// 假设外部定义了一个名为item的state变量,还有一个从上层component传递下来的callback函数 cbfunc() 需要使用该item变量
<button onClick={() => cbfunc(item)}>

下面这种写法是错误的,即不需要将item作为参数传入,且第一个传入的参数会被当成event对象

1
<button onClick={(item) => cbfunc(item)}>