关于onClick事件处理函数的问题
来源:4-9 【高阶组件HOC】withAddToCart()

samLau1984
2022-01-09
老师好,请问下:onClick={ } 为什么中括号内必须写成 onClick={ ()=> addToCart() } ? 我的理解是addToCart已经是一个function了,按理来说,直接onClick= { addToCart() }就可以执行了? 为什么要加箭头函数呢? 麻烦阿莱克斯老师解析一下吗?? 感谢感谢。
写回答
1回答
-
hymanzhan
2022-01-10
onClick里要传入的是一个函数的表达式,而不是一个调用函数的指令,因为onClick的作用是注册一个点击事件的处理函数(假设这个函数叫handle)。是在点击事件发生后,这个被注册的函数才会被调用,这时候才会有handle()执行。也就是说:
onClick={ handle } // 点击的时候执行 handle() onClick = {() => addToCart()} // 点击的时候执行 (()=>addToCart())(),其中 ()=>addToCart()是个匿名函数 //所以如果点击事件绑定的处理函数没有参数,也可以写成这样 onClick = {addToCart} // 点击的时候执行 addToCart()
152023-01-05
相似问题