使用复制粘贴进行反应数据网格单元格编辑

kap*_*dey 5 javascript event-bubbling dom-events reactjs react-data-grid

我正在尝试使用反应数据网格(与 Excel 相同)创建复制粘贴功能。复制粘贴工作正常,但我面临内联单元格编辑的问题。请参考这里的代码https://codesandbox.io/embed/sweet-wave-3qw4y?fontsize=14&hidenavigation=1&theme=dark

在此代码中,如果我编辑单元格(更改单元格值),并且在不按 Enter 或箭头键的情况下直接单击不同的单元格(正在编辑的单元格除外),则编辑的值将被传输到单击的单元格。

我在github上找到了一些东西,但无法找出解决方案: https: //github.com/adazzle/react-data-grid/issues/942,https : //github.com/adazzle/react-data-grid/ issues/293https://github.com/adazzle/react-data-grid/issues/1460https://github.com/adazzle/react-data-grid/issues/1474

请让我知道如何解决这个问题。

解决方法我在这里找到了解决方案https://www.npmjs.com/package/fixed-react-data-grid。他已经解决了这个问题并创建了另一个包,但我仍然不知道他是如何做到的。任何有关这方面的帮助都会非常有帮助。

小智 1

一个简单的解决方法是使用“onCellSeleted”而不是“cellRangeSelection”。像这样:

 render() {
    const { rows } = this.state
    return (
      <ReactDataGrid
        columns={columns}
        rowGetter={i => rows[i]}
        rowsCount={rows.length}
        onGridRowsUpdated={this.onGridRowsUpdated}
        enableCellSelect= {true}
       // cellRangeSelection={{onComplete: this.setSelection}}
        onCellSelected={s => this.setSelection({topLeft: s, bottomRight: s})}
      />
    );
}
Run Code Online (Sandbox Code Playgroud)