【问题标题】: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 处理程序。