import React, {Component} from 'react';
export default class AddBtn extends Component {
render() {
return (
<button onClick={function() {
this.handleClick();
}}>
Add
</button>
)
}
handleClick() {
this.props.onAddClick();
}
}
import React, {Component} from 'react';
export default class AddBtn extends Component {
render() {
return (
<button onClick={() => this.handleClick()}>
Add
</button>
)
}
handleClick() {
this.props.onAddClick();
}
}
说明,上述两段代码中this.props.onAddClick();
是从父组件中传递进来的,工能只是控制台输出一个f
。
第一段代码中,用了ES5 的语法,但是报错,如下图:
第二段代码中,用了ES6 的箭头语法,运行正确,如下图:
问题来了
这两个写法是不是一样的吗?(就算我在第一种写法中加行一个return this.handleClick();
结果还是报错)
我猜
会不会是和 ES6 的块作用域有关?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.