我是 React 的初学者,对于在 React 中调用函数有点困惑。
我看到了以下方法,但我不知道何时使用每种方法以及哪种方法。
handleAddTodo ={this.handleAddTodo}
handleAddTodo ={this.handleAddTodo()}
handleAddTodo ={handleAddTodo}
handleAddTodo ={this.handleAddTodo}
handleAddTodo ={handleAddTodo()}
这些可以互换吗?我可以像调用函数一样处理事件吗?
这些可以互换吗?
简短回答:不。
让我们看一下您发布的不同片段:
someFunction()
vs someFunction
使用前一种语法,您实际上是在调用该函数。后者只是对该函数的引用。那么我们什么时候使用哪个呢?
-
你会使用someFunction
当您只想将该函数的引用传递给其他函数时。在 React 中,这通常是一个事件处理程序,通过以下方式传递给另一个子组件props
以便该组件可以在需要时调用事件处理程序。例如:
class myApp extends React.Component {
doSomething() {
console.log("button clicked!");
}
render() {
return (
<div>
<Button someFunction={this.doSomething} />
</div>
);
}
}
class Button extends React.Component {
render() {
return (
<button onClick={this.props.someFunction}>Click me</button>
);
}
}
someFunction()
vs this.someFunction()
这与函数的上下文有关。基本上,“这个功能在哪里?”。是当前Component的一部分,那么使用this.someFunction()
,它是作为 props 传入的父组件的一部分,然后使用this.props.someFunction()
。它是当前方法内的函数,然后使用someFunction()
.
显然,还有很多内容,但这是我能给出的最好的基本总结。
为了更好地理解,请阅读here https://gist.github.com/amitai10/adb66d6faa714e8c3cdb94946bb98356。这是关于如何this
关键字在 Javascript 中尤其适用于 React。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)