【问题标题】:es6 javascript arrow functiones6 javascript箭头函数
【发布时间】:2019-01-06 11:43:34
【问题描述】:

下面是react上的代码:

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

这里是 react DOM 上的代码

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

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

this.handleChange(e)

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

【问题讨论】:

    标签: reactjs ecmascript-6 arrow-functions


    【解决方案1】:
    handleChange = name => event => {
    

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

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

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

    【讨论】:

      【解决方案2】:

      因为this.handleChange('storeName') 返回一个函数,然后分配给onChange 处理程序。

      【讨论】:

        猜你喜欢
        • 2022-01-21
        • 1970-01-01
        • 2017-12-06
        • 2014-04-04
        • 2016-09-07
        • 2016-03-25
        • 2019-02-19
        • 2018-03-03
        相关资源
        最近更新 更多