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
相关产品推荐
相关产品推荐

