每当我在按钮的 onClick 中传递函数括号时,即使不单击按钮,它也会在页面加载时自动调用。
但是,当我不在按钮的 onClick 中传递函数括号时,它仅在单击按钮时调用。
在函数调用中传递括号
<button onClick={this.handleButtonClick()}>Increment</button>
函数调用时不带括号
<button onClick={this.handleButtonClick}>Increment</button>
为什么每当我将括号传递给函数时,函数就会在页面加载时自动调用,即使它写在按钮的 onClick 内部?
之间有一个区别函数调用 and a function.
当组件呈现时,将执行所有语句并计算表达式。这是普通的 javascript,这就是 javascript 的工作原理。
this.handleButtonClick()
是一个函数call,因此一旦组件渲染就会调用该函数。我假设handleButtonClick()
回报undefined
这将导致按钮呈现为<Button onClick={undefined} />
。现在,如果onClick
is undefined
,当点击实际发生时,不会发生任何事情,因为没有要调用的函数。
this.handleButtonClick
只是一个参考对于一个函数,它不会调用它。您需要将函数引用传递给onClick
prop 以便稍后在单击实际发生时由 React 调用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)