javascript - ReactJS - 如何将数据从子组件获取到在 Prop 中传递的按钮的 onclick 中?

标签 javascript reactjs

我正在使用 ReactJS 和 ES2015

我通过 props 将按钮传递到子组件中。

我不知道如何将子级的数据获取到按钮的 onClick 函数

任何人都可以建议我需要做什么才能将数据从子组件获取到 onCLick 函数中吗?

  doDeleteItem = (blah) => {
    console.log('the item to delete is: ', blah);
  };


  deleteButton = (
      <button
       className="btn btn-expand btn-stroke btn-success mr-5"
       type="primary"
       onClick={this.doDeleteItem}Delete item
     </button>
   )

   render() {
     return (
       <TableContainer
         deleteButton={this.deleteButton}
         doDeleteItem={this.doDeleteItem}
       />
     );

更新:评论说有点不清楚。 这是上下文:

TableContainer 组件显示数据行。

我通过 props 将 Button 组件推送到 TableContainer 中。

TableContainer 呈现按钮。

我还按下按钮的函数以在其 onClick 事件中调用。

其想法是,用户在表中选择行,按下按钮(例如删除),然后按钮运行其 onClick 函数来删除所选行。

问题是我看不到如何将定义所选行的数据获取到 onClick 函数中。

看来 onClick 函数的“范围”实际上是父组件,而不是 TableContainer 组件,因此它看不到定义用户选择删除哪些数据行的变量。

这样是不是更清楚了?如果没有请告诉我。谢谢

最佳答案

尝试将 doDeleteItemdeleteButton 定义为方法而不是属性,然后在 child 中调用 deleteButton 并传递您需要的参数

doDeleteItem(rows) {
    console.log('the item to delete is: ', rows)
};

deleteButton(rows) {
  return <button
    className="btn btn-expand btn-stroke btn-success mr-5"
    type="primary"
    onClick={ () => this.doDeleteItem(rows) }
  >
    Delete item
  </button> 
}

render() {
  return (
    <TableContainer
      deleteButton={ this.deleteButton }
      doDeleteItem={this.doDeleteItem}
   />
 );
}

Example

关于javascript - ReactJS - 如何将数据从子组件获取到在 Prop 中传递的按钮的 onclick 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35312208/

相关文章:

javascript - 使用javascript从动态对象列表中获取值

javascript - 将forwardRef 与 proptypes 和 eslint 结合使用

javascript - React.js 和 jQuery 能完成同样的事情吗?

javascript - 使用 Material UI 响应路由器

javascript - AngularJS 点击链接打开文本区域

javascript - 如何在日期范围选择器中仅显示时间选择器

javascript - 在选择元素的 onChange 事件之后渲染 Umbraco 内容

javascript - knex 中的排水管连接需要比预期更多的时间

javascript - 如何在 React 的嵌套组件场景中将内容对齐到中心

javascript - 如何在 NextJS 中将 next-iron-session 与自定义 api 路由中间件一起使用?