无法在 React AG 网格中移除 select 行

Can't select row for removal in React AG Grid

在 React 中并基于 [此处][1] 的文档,我正在尝试 select AG Grid 行以使用以下代码删除:

    class MyComponent extends Component {
      constructor(props) {
        this.state={rowSelection: 'single'}
      }

      onGridReady(params) {
        this.gridApi = params.api
        this.columnApi = params.columnApi
      }

      onRemoveSelected() {
        const selectedData = this.gridApi.getSelectedRows();
        const res = this.gridApi.updateRowData({ remove: selectedData })
      }
    }

    render() {
      return(
        <div>
          <button onClick={this.onRemoveSelected.bind(this)}>Remove Selected</button>
          <AgGridReact
            id="myGrid"
            {...gridOptions}
            onGridReady={this.onGridReady}
            rowSelection={this.state.rowSelection}
           />
          </div>
      )
    }

但该行未 selecting。此外,使用不同的代码变体,有时我会收到此控制台警告:

cannot select node until id for node is known 

提前致谢 [1]: https://www.ag-grid.com/javascript-grid-data-update/

尝试遍历节点并为每个节点添加一个id。我不认为这是最佳解决方案,但它确实有效。

onGridReady(params) {
    this.gridApi = params.api;
    this.gridColumnApi = params.columnApi;

    let idSequence = 0;
    this.gridApi.forEachNode( function(rowNode, index) {
      rowNode.id = idSequence++;
    });
  }

Ag-Grid Grid Properties Reference
Ag-Grid 有一个名为 gridOptions 的道具,它接受一个对象。你可以从上面的参考中找到你可以在这个对象中放入什么样的键,但是你要找的键是 getRowNodeId.

示例(假设您的行数据包含一个名为 id 的键):

<AgGridReact
    gridOptions={{
        getRowNodeId : item => item.id
    }}
    {...gridOptions}
/>
...