Невозможно выбрать строку для удаления в React AG Grid - PullRequest
0 голосов
/ 03 мая 2018

В React и на основе документов здесь я пытаюсь выбрать строку 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>
  )
}

Но строка не выбирается. Кроме того, используя различные варианты кода, иногда я получал это предупреждение консоли:

cannot select node until id for node is known 

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Справочник по свойствам сетки Ag-Grid
Ag-Grid имеет опору gridOptions, которая принимает объект. Вы можете найти, какие ключи вы можете вставить в этот объект из приведенной выше ссылки, но вы ищете ключ getRowNodeId.

Пример (предполагается, что ваши данные строки содержат ключ с именем id):

<AgGridReact
    gridOptions={{
        getRowNodeId : item => item.id
    }}
    {...gridOptions}
/>
...
0 голосов
/ 11 сентября 2018

Попробуйте перебрать узлы и добавить идентификатор для каждого узла. Я не верю, что это самое оптимальное решение, но оно работает.

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

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