神秘的语法onClick={::this.submit}
Mysterious syntax onClick={::this.submit}
这个周末,我正在掠夺一些最近的react repos,我遇到了一个使用ES6类语法进行组件组合的例子,它有点像这样。
class MyThing extends Component {
constructor(props) {
super(props)
this.state = {something: 'the thing'}
}
submit() {
// do stuff
}
render() {
<div>
<button onClick={::this.submit}>Fire Submit</button>
</div>
}
}
注意::this.submit
代替this.submit.bind(this)
它是有效的,我在任何地方都找不到关于这个功能的文档,我觉得自己像个疯子,这个onClick={::this.doSomethingInsideRenderWithoutDotBind}
语法叫什么?我在哪里可以阅读更多关于它的信息?
这里详细介绍了双冒号,它目前是ES7的提案,所以它还没有确定下来,仍然有很多争论。它也不允许传递参数。因此,如果你有这种需要,它的用途确实有限。
还有"胖箭头"函数选项(用于实际函数,而不是对它的调用),它在词汇上与此绑定。。。
// Basic syntax:
(param1, param2, paramN) => { statements }
(param1, param2, paramN) => expression
// equivalent to: => { return expression; }
// Parentheses are optional when there's only one argument:
(singleParam) => { statements }
singleParam => { statements }
// A function with no arguments requires parentheses:
() => { statements }
// Advanced:
// Parenthesize the body to return an object literal expression:
params => ({foo: bar})
// Rest parameters are supported
(param1, param2, ...rest) => { statements }
相关文章:
- $(this).prop('property') vs. this.property
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 在另一个函数中使用变量this
- This.Form.Submit() on CakePHP
- this.form.submit()无法正常使用php
- 表单提交事件中this.submit()的行为
- 下拉选择将重置文本字段 onchange=“this.form.submit();”
- 如何在onchange=“this.form.submit()”上停止刷新页面
- 如何将锚点添加到“this.form.submit();”
- this.form.submit() 选择,只发布一个选项
- jQuery $(this).closest("form").submit(); not execu
- onclick=“;this.closest(“form”).submit();单击时不会激发
- 神秘的语法onClick={::this.submit}
- scope of this.submit()?
- 如何控制this.form.submit在mvc中调用的函数
- this.form.submit() 在删除代码后仍然会触发
- onchange =“this.form.submit()“;而不是两个提交按钮
- 多个onchange =“this.form.submit()“;在一页不工作
- 为什么我的 POST 变量没有到达 this.form.submit();
- 为什么这个“点击禁用=true;this.form.submit();' 在一个按钮上工作,但不能在另一个按钮上工作