es6 JavaScript箭头功能

时间:2018-07-30 08:58:23

标签: reactjs ecmascript-6 arrow-functions

以下是关于react的代码:

  handleChange = name => event => {
    console.log(name, event.target.value);
  }

这是React DOM上的代码

onChange={this.handleChange('storeName')}

我不明白的是,事件是如何传入的,甚至没有在this.handleChange('storeName')函数中声明它?它是如何工作的?因为我认为通常这样工作。

this.handleChange(e)

,然后尝试通过声明事件来获取事件。

2 个答案:

答案 0 :(得分:2)

因为$("#inject-toc-here > ol > li::before").css('content", "counters(item, ".") " "'); 返回一个函数,然后该函数被分配给this.handleChange('storeName')处理程序。

答案 1 :(得分:2)

handleChange = name => event => {

这不是一个简单的功能。它是一个返回函数的函数。让我们重写一下:

function name => {
   return event => {
       // name is captured inside this closure
       console.log(name, event.target.value);
   }
}

因此,调用this.handleChange('storeName')实际上会生成一个以event作为参数的函数,然后我们将 that 函数分配给onChange