reactjs - 匿名函数如何在 React 组件的 onClick 中工作?

标签 reactjs onclick components

当 React 中有两个 Button 组件时,这两者有什么区别?

const add = (x, y) => {
  return x + y
}

案例一:

<Button onClick={() => add(1, 2)}>Add</Button>

案例二:

<Button onClick={add(1, 2)}>Add</Button>

最佳答案

第一个将调用 add(1, 2) 并在单击按钮时将 3 返回给 onClick 属性的调用者。

第二个将在 计算 JSX 时调用 add(1, 2)(最有可能在渲染期间),并将传递 3 作为 onClick Prop 。情况 2 相当于:

<Button onClick={3}>Add</Button>

这很可能不是您想要的。

通常只有当函数返回另一个函数时,您才会调用这样的函数,例如:

const logNums = (x, y) => () => {
  console.log(x + y);
}
<Button onClick={logNums(1, 2)}>Add</Button>

按下按钮时将记录 3。

关于reactjs - 匿名函数如何在 React 组件的 onClick 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67529332/

相关文章:

javascript - 仅单个 Ant 上传列表项

javascript - ReactJS中已挂载组件的findDOMNode

javascript - 有没有办法将变量从 ReactJS 传递到 CSS 样式表?

Android - 无法点击按钮

javascript - 我如何将数据从组件A发送到组件B Angular 2

javascript - 如何在 SendBird 等消息服务中实现表情符号? (Web-Base App 非本地)

javascript - 返回 false 不适用于第二个 onclick 切换事件

Javascript onclick 函数被立即调用(不是点击时)?

interface - 如何在 UML 组件图中找出组件的正确接口(interface)?

reactjs - React 中函数式 Observable 模式的绝对最简单示例