You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

reactable是否提供行级OnDoubleClick函数?官方文档仅支持onClick

reactable 是否支持行双击(onDoubleClick)事件?
  • reactable的R官方接口并未直接暴露onDoubleClick函数供用户使用,尽管在源码的utils.R文件中能找到相关定义,但该功能没有开放为对外可配置的参数。
  • 不过可以通过onClick结合JavaScript逻辑模拟实现双击效果,核心思路是记录点击时间戳,判断两次点击的间隔是否在合理阈值内(通常取300ms),同时确保是同一行点击:
reactable(
  your_data_frame,
  onClick = JS("function(rowInfo, column) {
    // 初始化全局变量存储上次点击信息
    if (!window.reactableLastClick) {
      window.reactableLastClick = { time: Date.now(), rowIndex: rowInfo.index };
      return;
    }

    const currentTime = Date.now();
    // 判断是否为同一行的双击操作
    const isDoubleClick = currentTime - window.reactableLastClick.time < 300 && 
                         window.reactableLastClick.rowIndex === rowInfo.index;

    if (isDoubleClick) {
      // 这里编写双击触发的自定义逻辑
      window.alert('双击了第' + (rowInfo.index + 1) + '行');
      
      // 若在Shiny环境中,可将双击事件传递给R端
      if (window.Shiny) {
        Shiny.setInputValue('row_double_clicked', rowInfo.index + 1, { priority: 'event' });
      }

      // 清空点击记录,避免重复触发
      window.reactableLastClick = null;
    } else {
      // 更新点击记录为当前点击
      window.reactableLastClick = { time: currentTime, rowIndex: rowInfo.index };
      // 延迟清空记录,处理非双击的单次点击
      setTimeout(() => {
        if (window.reactableLastClick?.rowIndex === rowInfo.index) {
          window.reactableLastClick = null;
        }
      }, 300);
    }
  }")
)
  • 这种模拟方案可以实现和原生双击事件一致的交互效果,适配Shiny或纯前端的reactable场景。

内容的提问来源于stack exchange,提问作者Odrai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 16:48:26