React中Antd Pagination组件onChange为何可直接绑定setCurrent?
为什么Antd Pagination的onChange直接绑定setCurrent就能更新状态?
这其实是因为Antd分页组件的onChange回调参数,和useState的set函数的参数要求完全匹配,具体拆解:
首先看Antd的
Pagination组件:当用户切换页码时,onChange回调会自动把**当前选中的页码(数字类型)**作为第一个参数传递给绑定的函数。比如你点了第2页,它就会调用你给的函数,传进去的参数是2。再看React useState返回的
setCurrent:这个函数的作用就是接收一个新的状态值(这里就是数字类型的页码),然后把current状态更新为这个值。它本身就支持直接接收一个值作为参数,不需要额外包装。
所以两者刚好对上:当分页切换触发onChange时,它把页码传给setCurrent,setCurrent直接用这个页码更新current状态,整个过程自然就生效了。
举个等价的写法,你就能更清楚:
// 直接绑定setCurrent 等价于 下面这个箭头函数 onChange={(page) => setCurrent(page)}
只不过因为参数完全匹配,所以可以省略中间的箭头函数,直接把setCurrent传进去。
内容的提问来源于stack exchange,提问作者ye qin
相关产品推荐
相关产品推荐

