Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 双击剑道网格行';反应组分的s_Javascript_Reactjs_Kendo Ui_Kendo Grid_Kendo React Ui - Fatal编程技术网

Javascript 双击剑道网格行';反应组分的s

Javascript 双击剑道网格行';反应组分的s,javascript,reactjs,kendo-ui,kendo-grid,kendo-react-ui,Javascript,Reactjs,Kendo Ui,Kendo Grid,Kendo React Ui,我正在使用React Grid组件,我正在寻找一种在双击一行时启动函数的方法 我发现了一个rowClick函数,现在我可以使用它来选择一行或处理onClick事件:yourFunction(e)}>。 但是没有处理双击事件的函数 这是我的方法,我将一个onDoubleClick()函数作为道具传递给我的组件,并将其与componentDidMount上的doubleClick侦听器绑定到每一行: componentDidMount() { let { onDoubleClick } =

我正在使用React Grid组件,我正在寻找一种在双击一行时启动函数的方法

我发现了一个
rowClick
函数,现在我可以使用它来选择一行或处理onClick事件:
yourFunction(e)}>
。 但是没有处理双击事件的函数

这是我的方法,我将一个
onDoubleClick()
函数作为道具传递给我的组件,并将其与
componentDidMount上的
doubleClick
侦听器绑定到每一行:

componentDidMount() {
    let { onDoubleClick } = this.props;
      if (onDoubleClick) {
        const rows = document
          .getElementsByClassName('k-widget k-grid')[0]
          .getElementsByClassName('k-grid-table')[0]
          .getElementsByTagName('tbody')[0]
          .getElementsByTagName('tr');
        for (let i = 0; i < rows.length; i++) {
          rows[i].addEventListener('dblclick', () => onDoubleClick());
        }
      }
  }
componentDidMount(){
让{onDoubleClick}=this.props;
如果(onDoubleClick){
常量行=文档
.getElementsByClassName('k-widget k-grid')[0]
.getElementsByClassName('k-grid-table')[0]
.getElementsByTagName('tbody')[0]
.getElementsByTagName('tr');
for(设i=0;ionDoubleClick());
}
}
}
目前这是可行的,但我无法将单击的行数据传递给我的函数。 是否存在使用元素检索行数据的黑客行为? 例如:onDoubleClick(kendo.data.DataSource(rows[i])=>返回json数据以运行。

网格有一个属性,可以用作完全修改行的工具,包括使用本机React方法将行附加到rowClick

rowRender(trElement, dataItem) {
    const trProps = {
        ...trElement.props,
        onDoubleClick: () => {
            //place your logic here
        }            
    };
    return React.cloneElement(trElement, { ...trProps }, trElement.props.children);
}

您可能会发现这个生动的示例,介绍了如何在onDoubleClick的相同逻辑中为GridRow附加鼠标向下、模糊和聚焦,就像我在上面截取的代码中使用的一样。

在jquery版本中,您可以执行var item=grid.dataItem(grid.select());其中“网格”是对网格小部件的引用。我不知道react api是否相同。