关于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()


1
5
Chimera
回复
慕桂英5343436
感谢解答!你讲得好好😆 我之前也搞不清楚,现在才明白了
2023-01-05
共5条回复

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程