我是 React 的初学者,我对在 React 中调用函数有点困惑。
我看到了以下几种方法,但我不知道何时使用每种方法以及使用哪种方法。
handleAddTodo ={this.handleAddTodo}
handleAddTodo ={this.handleAddTodo()}
handleAddTodo ={handleAddTodo}
handleAddTodo ={this.handleAddTodo}
handleAddTodo ={handleAddTodo()}
这些可以互换吗?我可以像调用函数那样处理事件吗?
原文由 Anyname Donotcare 发布,翻译遵循 CC BY-SA 4.0 许可协议
简短的回答:没有。
让我们来看看您发布的不同片段:
someFunction()
对比someFunction
使用前一种语法,您实际上是在调用该函数。后者只是对该功能的引用。那么我们什么时候使用哪个呢?
someFunction()
。在 React 中,当您将部分 JSX 代码拆分为一个单独的函数时,通常会看到这种情况;出于可读性或可重用性的原因。例如:someFunction
。在 React 中,这通常是一个事件处理程序,通过props
传递给另一个子组件,以便该组件可以在需要时调用事件处理程序。例如:someFunction()
对比this.someFunction()
这与函数的上下文有关。基本上,“这个功能在哪里?”。是当前组件的一部分,然后使用
this.someFunction()
,它是作为道具传入的父组件的一部分,然后使用this.props.someFunction()
。它是当前方法内部的函数,那么只需使用someFunction()
。显然,它的意义远不止于此,但这是我能给出的最好的基本总结。
为了更好地理解,请阅读 此处。这是关于
this
关键字如何在 Javascript 尤其是 React 中工作的一个很好的指南。