首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当来自custombodyrender的操作按钮被单击时,我如何防止onRowClick?

当来自custombodyrender的操作按钮被单击时,我如何防止onRowClick?
EN

Stack Overflow用户
提问于 2021-05-17 14:53:43
回答 2查看 387关注 0票数 1

我使用的是一个多重数据表,其中onRowClick会将用户定向到另一个页面。我也有自定义操作按钮在每一行。但是,如果我单击自定义操作按钮,它还会触发onRowClick,它会将用户定向到另一个页面。如何在单击自定义操作按钮时防止onRowClick?

代码语言:javascript
复制
class orders extends Component {
  constructor() {
    super();
    this.state = { orders: [] };
  }

  handleRowClick = (rowData, rowMeta) => {
    this.props.history.push("/details", `${rowData[0]}`);
  };

  columns = [
    "Order ID",
    "Items",
    "Address",
    "Total Amount",
    {
      name: "Action Button",
      options: {
        filter: true,
        sort: false,
        empty: true,
        customBodyRender: (value, tableMeta) => {
          return (
            <FormControlLabel
              value={value}
              control={
                <Button
                  value={value}                >
                  Action Button
                </Button>
              }
              onClick={(e) => {
                //firestore codes
              }}
            />
          );
        },
      },
    },
  ];
  options = {
    onRowClick: this.handleRowClick,
  };

  render() {
    return this.state.orders ? (
      <div>
        <MUIDataTable
          title={" Orders"}
          columns={this.columns}
          data={this.state.orders}
          options={this.options}
        />
        
      </div>
    ) : (
      <p>Loading...</p>
    );
  }
}
export default withRouter(orders);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-17 14:56:54

假设你有一个按钮

代码语言:javascript
复制
<button onClick={onClick} >Don't Bubble</button>

您可以使用event.stopPropagation()来防止事件冒泡到父级。

代码语言:javascript
复制
const onClick=(event) => {
    event.stopPropagation()

    .. do what u want with the button
}
票数 8
EN

Stack Overflow用户

发布于 2021-07-17 01:30:06

禁用操作列的行事件单击

代码语言:javascript
复制
  const handleActionColmunClick = (event: React.MouseEvent<HTMLElement>) => {
    event.stopPropagation();
  };


    <TableBodyCell onClick={handleActionColmunClick}>
                      <IconButton
                        aria-label="more"
                        aria-controls="customized-menu"
                        aria-haspopup="true"
                        onClick={handleActionMenuClick}
                      >
.....
...
..
.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67565175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档