在 React Table 中触发单元格 onClick 而不是行 onClick

Posted

技术标签:

【中文标题】在 React Table 中触发单元格 onClick 而不是行 onClick【英文标题】:Trigger cell onClick instead of row onClick in React Table 【发布时间】:2019-08-05 04:08:43 【问题描述】:

I have the following table:

我希望单击该行右侧的三个点会打开一个 弹出菜单,所以我为这个单元格写了一个 onClick 函数。

我还希望单击该行中的任何其他区域将重定向到另一个页面,因此我覆盖了反应表的 onClick,(如反应表文档中所建议:https://github.com/tannerlinsley/react-table/tree/v6#custom-props) 通过以下方式:

 _getTdProps = (state, rowInfo, column, instance) => (
     onClick: (e, handleOriginal) => 
        if (this.props.onTableRowClick) 
            this.props.onTableRowClick( e, column, rowInfo, instance );
        
        if (this.props.shouldHandleOriginalOnClick && handleOriginal) 
           handleOriginal();
        
    ,
)

我的问题是,当我按下三个点图标而不是打开弹出菜单时,也会重定向到另一个页面。

我怎样才能使这个功能起作用? 我尝试使用 z-index 来处理单元格和行,但没有帮助。

有什么建议吗?

谢谢

【问题讨论】:

【参考方案1】:

您可以在点单击事件上调用stopPropagation 方法,这样当您单击点时,事件不会冒泡到行。

e.stopPropagation();

【讨论】:

【参考方案2】:

你可以试试这个:

handleKeyDown(event) 
  event.preventDefault(); // Let's stop this event.
  event.stopPropagation(); // This will work.

【讨论】:

以上是关于在 React Table 中触发单元格 onClick 而不是行 onClick的主要内容,如果未能解决你的问题,请参考以下文章

React - 处理状态数组中单元格的修改

React-table 单个单元格样式

react ,ant Design UI中table组件合并单元格并展开详情的问题

如何在 React-Table 上获取单元格值?

引用多个行属性的 react-table 自定义单元格组件

如何将自定义道具从 App 传递到单元格以进行 react-table v7?