何时调用函数vs function()in on on?

时间:2017-02-11 16:15:36

标签: javascript reactjs

我对何时调用react组件中的函数有疑问。有时我的代码会在我没有将括号添加到函数调用时中断,但并非总是如此。我在这里缺少某种规则吗?

不起作用

// Callback of parent component
<Link onClick={this.props.OnNavigate}>
    A link
</Link>

有效吗

// Callback of parent component
<Link onClick={this.props.OnNavigate()}>
    A link
</Link>

// Callback for function of component
<li onClick={this.toggleDepartments}>other example</li>

2 个答案:

答案 0 :(得分:14)

foo()正在调用foo引用的函数。 foo本身只是对函数的引用,它不调用函数。

因此,如果您想在此处立即调用函数,则需要使用括号。
如果要将函数传递给其他代码,则必须省略括号,以便可以调用该函数。事件处理程序就是这种情况。当click事件发生时(将来某个时间),而不是在呈现组件时,应调用this.props.OnNavigation

答案 1 :(得分:-1)

使用parens调用该函数是一个好习惯,因为当您创建一个单独的js文件并将它们与脚本标记链接在一起时,您肯定知道它正在调用该特定函数。