我对何时在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>
foo()正在调用引用的函数foo。foo本身只是对函数的引用,它不会调用该函数。
foo()
foo
因此,如果要在 此处和现在 调用该函数,则需要使用括号。 如果要将 函数传递 给其他代码,则必须省略括号,以便它可以调用该函数。事件处理程序就是这种情况。this.props.OnNavigation应该在click事件发生时(将来的某个时间)而不是在呈现组件时调用。
this.props.OnNavigation