
react(20)——使用函数的柯里化实现获取表单的数据
发布日期:2021-05-07 02:54:04
浏览次数:15
分类:精选文章
本文共 638 字,大约阅读时间需要 2 分钟。
1.概念
高阶函数:如果一个函数符合下面2个规范中的任何一个,那么该函数就是高阶函数。
- 一个函数接收的参数是一个函数。
- 一个函数返回的值是一个函数。
函数的柯里化:通过函数调用继续返回函数的方式,实现多次接收参数最后统一处理的函数编码形式。
2.代码
3.代码讲解
onChange={ this.saveFormData("username")}
- 如果saveFormData后面没有括号,那么传给onChange的是一个函数;加上括号后,传给onChange的就是saveFormData函数的返回值。
saveFormData = (dataType) => { return (event) => { this.setState({ [dataType]: event.target.value, }); }; };
- 使用函数的柯里化,将该函数的返回值设置成为一个函数,就可以实现一个方法,多个onChange共用了。
- event特殊参数在saveFormData中无效,因为onChange中传入的不是saveFormData方法,而是saveFormData返回的方法。
- setState中,dataType必须加上中括号,否则会新增一个名为dataType的属性,而不是更新属性。
4.运行结果
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月03日 03时36分16秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
聊一聊那些应该了解的大佬(飞控,人工智能方向)
2021-05-08
ArduPilot+mavros+gazebo+QGC联合仿真初体验
2021-05-08
px4调试bug--添加mavlink_log_info信息
2021-05-08
redis替换字符串命令
2021-05-08
redis向数组中添加值并查看数组长度
2021-05-08
python3基础梳理11python中模块和包
2021-05-08
JS编写一个函数,计算三个不同数字的大小,按从小到大顺序打印(穷举法)
2021-05-08
jQuery实现轮播图效果
2021-05-08
mybatis中like的注意
2021-05-08
sqlplus的基本使用
2021-05-08
oracle删除表重复数据
2021-05-08
Oracle删除主表数据
2021-05-08
js中两种定时器,setTimeout和setInterval实现验证码发送
2021-05-08
Oracle常用SQL
2021-05-08
技术美术面试问题整理
2021-05-08
Redis分布式锁原理
2021-05-08
【备份】求极限笔记
2021-05-08
C++学习记录 四、基于多态的企业职工系统
2021-05-08
C++学习记录 五、C++提高编程(2)
2021-05-08