嗨,我一直在阅读React和做一些编码,我不禁注意到,在代码的某些部分中,我们将使用this.function()
,而在某些部分中,我们将使用{{1} },我不明白它们之间有什么区别,以及如何确定何时应该用this.function
打电话以及何时不应该打电话。
例如,我可以使用下面的代码来使用()
this.function
接下来,我可以输入以下代码
//Arrow function used to bind the necessary variables
CallFunction = (event) =>{
console.log("Event was called");
}
render(){
return(
<form onSubmit={this.CallFunction} />
);
}
答案 0 :(得分:2)
这只是普通的javascript,它是执行函数和引用函数之间的区别。如果您有括号,则该函数将在渲染后立即执行。因此,在第二个示例中,安装该组件后,您会立即在控制台中看到“事件已调用”。我们可能必须这样做的原因有很多,一个简单的原因就是我们只想将我们的一些代码分解为一个新函数,以使事情更易于阅读。
对于回调,我们不想立即执行该函数,因此我们不使用括号。我们只是引用函数。我们基本上是说这是我希望您在有人提交此表单时执行的功能。如果我们使用parens,则该函数将在组件安装时立即执行-无需等到提交表单后即可。
edit:有时您需要在渲染上执行一个函数,然后返回要执行的 new 函数作为事件处理程序回调:
function thisRunsOnRender () {
return function thisRunsOnSubmit (e) {
console.log(e) // this would be the submit event
}
}
....
render () (
<form onSubmit={thisRunsOnRender()} />
)