React - 为什么 onClick 中的这个函数不起作用?

鲁弗斯7

如果我这样写,单击按钮有效

<Menu.Item 
    key={book.uid}
    onClick={() => this.changeColor(book)}     
    >

但是如果我这样写:

onClick={this.changeName(book)}

点击不起作用。

所以如果函数有参数,我应该使用"() => xxx(argument);否则,我可以使用"this.xxx",对吗?

特雷科斯

因为这样做this.changeName(book)会在渲染时立即调用该函数。你的函数返回的是......不是一个函数,所以当你点击时,什么都不会发生。

并且() => this.changeColor(book)是一个箭头函数,它具有与以下语法类似(但不是真的)的行为:

() => { this.changeColor(book) }

为避免这种情况,您可以使用第一个代码示例或将函数转换为柯里化函数,并在渲染中保留第二个语法:

changeName = bookInfo => event => {
    /* Your code here */
}

在渲染中调用一次时,此函数将返回另一个接收事件的函数并设置第bookInfo一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么这个jQuery click函数不起作用?

在某些情况下,onClick在React中为什么不起作用?

为什么这个简单的ave函数不起作用

为什么我的裁判在React Native中不起作用?

为什么RecyclerView onClick方法不起作用?

为什么x.func1 x.fun2 x.func3函数在onClick中不起作用

为什么onclick函数在下面的Javascript代码段中不起作用?

为什么e.preventDefault()在React中不起作用?

这个Rust函数为什么不起作用?

为什么body元素上的onclick事件不起作用?

为什么我的onclick事件不起作用?

为什么img上的onclick处理程序不起作用?

为什么我的onClick事件不起作用?

为什么在这个 IF 函数中,Asterix (*) 起作用而 AND 函数不起作用?

为什么这个 onclick 事件在我的脚本中不起作用?

为什么 onClick 对我的按钮不起作用?

为什么这个 Css 类条件在 react js 中不起作用?

为什么 React 中的 closeModal 不起作用?

为什么 onclick = function() 在文档内不起作用?

如果单独传递,为什么在这个 react 组件中 `alert` 函数不起作用?

为什么我在 JavaScript 中的 onclick 事件不起作用?

为什么“Col”在 React bootstrap 中不起作用?

为什么 onclick 函数在 html -angular 中不起作用

为什么 onclick javascript remove 不起作用?

onclick 函数在 React 功能组件中不起作用

为什么 React 的 usePrevious 函数在这个 MDN 焦点管理示例中起作用?

为什么这个 onclick 按钮在 javascript 中不起作用

React - onClick 函数在 flexbox 中不起作用

为什么这个函数在 eventListener 中不起作用?