reactjs - 反应:帮助理解特定的柯里化用例
问题描述
<Select
onChange={evt => myFunction('KEY', ['ARRAY', 'OF', 'VALUES'])(evt)}
...
const myFunction = (key, funValues) => {
return (evt: React.ChangeEvent<HTMLSelectElement>) => {
const { values } = evt.target;
if (funValues.find( some condition) ){
callAPI(key, funValues);
}
else{
callAPI(key, values);
}
};
};
我会把它写成
onChange={evt => myFunction('KEY', ['ARRAY', 'OF', 'VALUES'], evt)}
我真的没有看到在这里应用柯里化的逻辑是什么,以及它将如何使 a) 这个操作更好和/或 b) 有助于更广泛的好处
也许这有助于上下文,但myFunction
在整个代码库中都被调用。有时通过 evt,有时手动。
解决方案
创建一个柯里化函数(我猜)是在回调处理程序中避免箭头函数的误解。为了这种误解,有些人将此功能定义为咖喱功能并使用例如:
onChange={myFunction('KEY', ['ARRAY', 'OF', 'VALUES'])}
如您所见,这比您的版本短并且有效。因此,您不必像您一样使用箭头函数并调用它。event
再次通过。
有些人认为这避免了在每次渲染中重新创建此功能,但事实并非如此。
推荐阅读
- java - 对 xml 模式中的值列表进行排序
- entity-framework-core - Automapper.ProjectTo() 抛出空引用异常
- git - git repack:按文件类型隔离和按组配置包?
- vcftools - 如何使用 vcftools 按读取深度进行过滤?
- mongodb - 无法连接robo 3t localhost;27017 窗户 10
- python - chrome 88 无法重新定义 webdriver
- sql - 我的 cs50 pset 7 10.sql 嵌套查询哪里出错了?
- c# - 在 DbContext 的 OnConfiguration 中使用 connectionString
- javascript - 事件的自定义视图
- html - 如何使用 css 在链接旁边添加文件格式图标