当前位置: 首页 > 知识库问答 >
问题:

从传递函数到子组件的奇数结果[重复]

宰父俊民
2023-03-14

因此,我在理解传递给子组件的prop的函数调用方式的差异时遇到了一个问题。

onClick(id)   {
    console.log(id)
}

<div className="card" onClick={() => this.props.onClick(this.state.id)}>

v、 美国。

<div className="card" onClick={this.props.onClick(this.state.id)}>

第一个按预期工作,并在单击时给我组件状态的id。第二个在加载时打印每个组件的所有id,甚至在我有机会点击它们之前。我错过了什么?为什么返回语句如此重要?谢谢你的帮助。

共有3个答案

韦智刚
2023-03-14
匿名用户

需要传递一个函数。

您的第一个示例传递了一个调用此函数的函数。道具。onClick(this.state.id)当它运行并正常工作时。

第二个示例将onClick的计算结果传递给this。道具。onClick(this.state.id)这就是为什么组件加载时会立即打印所有id的原因。我猜调用此函数不会返回任何结果。道具。onClick(this.state.id)soonClick在单击div时没有任何调用。

冯永长
2023-03-14

在#2处,您给出执行的结果。道具。onClick(this.state.id)无效。

朱起运
2023-03-14

你一定是打电话给点击

   onClick={this.props.onClick(this.state.id)}

所以换成

  onClick={() => this.props.onClick(this.state.id)}

这将阻止自动调用事件处理程序函数。通过上述更改,onClick事件处理程序函数仅在单击时调用

 类似资料:
  • 问题内容: 我想将功能传递给子组件,但出现此错误。 基本上是我想做的。 var ReactGridLayout = require(’react-grid-layout’); 似乎它是在React v16中引入的。因此,将函数从父代传递给子代的正确方法是什么? 问题答案: 我发现出了什么问题。这是因为react-grid-layout。我必须将其余的属性传递给孩子。

  • 问题内容: 在React中,我有类似的文件 parent.js 包含文本框和按钮 child.js 包含P标签 App.js 包含父组件和子组件 问题 将“父级”上的“文本框”值传递给子级,并将其显示在子级标记中。 完整代码 堆叠 问题答案: 更新了示例以将数据传递给子组件。 https://stackblitz.com/edit/react- trmj9i?file=child.js 在下面添加

  • 我完全不知道这里发生了什么,如果有任何帮助,我将不胜感激!

  • 问题内容: 我正在寻找一个函数,该函数需要一个页面/类别的数组(来自平面数据库结果),并根据父ID生成一个嵌套的页面/类别的数组。我想递归地执行此操作,以便可以进行任何级别的嵌套。 例如:我在一个查询中获取所有页面,这就是数据库表的样子 这是我要最终在视图文件中处理的数组: 我已经看过并尝试过几乎遇到的所有解决方案(Stack Overflow上有很多解决方案,但是没有运气得到足够通用的东西同时适

  • 问题内容: 这个问题已经在这里有了答案 : 如何将变量和数据从PHP传递到JavaScript? (20个答案) 5年前关闭。 我正在尝试将PHP数组变量转换为JavaScript变量。 这是我的代码: 我无法获得PHP数组的价值。 我该如何解决这个问题? 问题答案: 在下面的示例中,您具有一个PHP数组,然后首先通过一个PHP数组创建一个JavaScript数组:

  • 问题内容: 通过回调函数将数据从子级传递到父级组件,但是不起作用。我在这里做错了什么?将数据从子级传递到父级组件-反应-通过回调函数 https://codepen.io/silentarrowz/pen/GEMQEP?editors=0010 这是代码 问题答案: 有几个问题。 1)你必须绑定 2)是异步的,因此不能保证在传递给时将其设置为所需的值。你可以做 要么 解决该问题。