<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)}
我真的不明白在这里应用currying的逻辑是什么,以及它将如何产生 a)这个操作更好 和/或 b)带来更广泛的利益
这可能对上下文有帮助,但是在整个代码库中都调用myFunction
。有时是通过evt,有时是手动。
答案 0 :(得分:1)
创建一个咖喱函数(我想)是对避免在回调处理程序中使用箭头函数的一种误解。为了避免这种误解,有人将此功能定义为咖喱函数,并使用例如:
onChange={myFunction('KEY', ['ARRAY', 'OF', 'VALUES'])}
如您所见,它比您的版本短一些并且可以使用。因此,您不必使用箭头函数就可以像调用它那样进行调用。 event
再次通过。
有人认为这避免了在每个渲染中重新使用此功能,但这不是事实。