反应:帮助理解特定的柯里化用例

react: helping to understand specific currying use case

  <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)这个操作更好 and/or b) 有助于更广泛的利益

也许这对上下文有帮助,但 myFunction 在整个代码库中被调用。有时通过 evt,有时手动。

创建柯里化函数(我猜)是对避免在回调处理程序中使用箭头函数的误解。为了消除这种误解,有些人将此函数定义为柯里化函数并使用如:

onChange={myFunction('KEY', ['ARRAY', 'OF', 'VALUES'])}

如您所见,它比您的版本更短并且可以运行。因此,您不必像使用箭头函数那样调用它。 event再次通过

有些人认为这避免了在每次渲染时重新创建此函数,但事实并非如此。