javascript - 在 react 类组件中使用不带参数的柯里化(Currying)函数的目的是什么?

标签 javascript reactjs ecmascript-6 currying

在 Material ui React Components 演示中看到了这个设置,想知道这个柯里化(Currying)函数的目的是什么:

toggleDrawer = (side, open) => () => {
   this.setState({
      [side]: open,
   });
};

在其他地方他们这样调用它:

<Button onClick={this.toggleDrawer('left', true)}>Open Left</Button>

最佳答案

toggleDrawer是一个可以产生其他功能的工厂。它被用来减少代码重复。如果这是代码中唯一有 onClick 的地方,那么它不是很有用,但可能还有其他类似这样的代码行:

<Button onClick={this.toggleDrawer('top', true)}>Foo</Button>
<Button onClick={this.toggleDrawer('bottom', true)}>Bar</Button>
<Button onClick={this.toggleDrawer('left', false)}>Baz</Button>
<Button onClick={this.toggleDrawer('cobb', 'salad')}>Yum</Button>

就我个人而言,我会为其命名不同的名称,以明确它是一个工厂,例如 makeToggleHandler

关于javascript - 在 react 类组件中使用不带参数的柯里化(Currying)函数的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55837336/

相关文章:

javascript - 如何添加带有 "document.createTextNode"按钮的一行

javascript - 如何在 Web 应用程序中实现 Visual Code 智能感知

javascript - es6 Javascript 类在回调中使用 this

javascript - 如何使用 Babel 和 ES6 正确地子类化 Promises

javascript - 使用二维数组计算输赢

javascript - 选择 :target on document. 就绪()

javascript - CSS:将 Three.js 放在圆形 div 中?

reactjs - react : Unable to access the parent component's function which is passed as prop to child component

javascript - 空获取时发出警报

javascript - 用于随机化消息的字符串插值数组