javascript - 检索在 React 中单击了哪个按钮

标签 javascript reactjs material-ui

我有几个动态生成的 Material UI 按钮,当用户单击其中任何一个时,我想知道单击了哪个(假设获取我在下面指定的 name 属性的值)。 如何解决?基本上我想检索被点击的按钮的一些属性。 这是一些代码

    {
      that.state.items.map(function (item) {
        return (
          <div key={item.id}>
            <FlatButton
              label={item.regionName}
              name={item.id}
              primary={true}
              onClick={that.handleRegionClick}
            ></FlatButton>
          </div>
        );
      });
    }
    
    handleRegionClick(e);
    {
      console.log(e.target.name); // This prints undefined
      // If I could get here the _item.id_ which I assigned to _name_ I would be fine.
    }

附言。我在构造函数中也有这个

 this.handleRegionClick = this.handleRegionClick.bind(this);

最佳答案

你可以做一件事,而不是将 id 分配给 name,bind 该 id 与 onClick 处理函数。每当单击任何按钮时,它都会将该 ID 传递给处理函数。

像这样:

let a = [{ id: 1 }, { id: 2 }, { id: 3 }];

a.map(item => {

   return <FlatButton
    label={item.regionName}
    primary={true}
    onClick={() => this.handleRegionClick(item.id)} />

})

handleRegionClick 函数:

handleRegionClick(id){
  console.log(id);
}

注意 handleRegionClick 的绑定(bind)在这里不是必需的,因为在这里,我们使用带有onClick 的arrow function 并调用handleRegionClick正常。

关于javascript - 检索在 React 中单击了哪个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604167/

相关文章:

reactjs - React Material-ui TextField 文本对齐和隐藏光标

javascript - material-ui:无法设置图标菜单的样式

javascript - 条件渲染可以使表单项可见,但无法隐藏它

javascript - 如何在 PhpStorm 中启用 JS 库自动完成?

javascript - 在V8中,调用堆栈的最大值是多少?

javascript - 提交按钮无法正常工作

css - 如何使用 javascript 和 css 在状态更改时为组件的有条件渲染部分设置动画?

reactjs - 如何以编程方式知道 Google AdSense 广告是否成功显示,或者我的 react/next.js 网站是否发生任何错误?

javascript - 将字符串数组与对象数组进行比较并删除

javascript - React - 您为选择组件提供了超出范围的值 `undefined`