Estoy tratando de actualizar una cuadrícula y volver a seleccionar la última fila antes de la actualización.
Este es mi componente de cuadrícula AG.
onCellClicked = params => {console.log(params) let node = params.node; Promise.all([ node.setSelected(true, true), this.props.actions.selectMarketingProspect(node.data), this.props.actions.getMarketingCustomerNotes(this.props.dealerID,node.data.id) ]); }; <AgGridReact columnDefs={columnDefs} defaultColDef={{ resizable: true, sortable: true }} rowSelection='single' getRowNodeId={data => data.id} deltaRowDataMode={true} frameworkComponents={frameworkComponents} rowClassRules={this.state.rowClassRules} detailCellRenderer={detailCellRenderer} onFirstDataRendered={this.onFirstDataRendered} onGridReady={this.onGridReady} onSelectionChanged={this.onSelectionChanged} onCellClicked={this.onCellClicked} sideBar={toolPanelOptions} onModelUpdated={this.onModelUpdated} /> </div>¿Algunas ideas?
Según lo que leí en los documentos, creo que node.setselected debería funcionar, pero no puedo llegar allí. Cualquier ayuda será apreciada.
Puede realizar un seguimiento de los últimos ID de RowNode seleccionados escuchando el evento de cambio de selección:
const [selectedRowIds, setSelectedRowIds] = React.useState<string[]>([]); <AgGridReact onSelectionChanged={(e) => { const selectedNodes = e.api.getSelectedNodes(); if (selectedNodes.length === 0) return; const selectedRowIds = selectedNodes .map((n) => n.id) .filter(Boolean) as string[]; setSelectedRowIds(selectedRowIds); }} {...} /> Luego, cuando desee seleccionarlo nuevamente, use GridApi.getRowNode(id) para obtener el RowNode que desea seleccionar y llame a RowNode.setSelected(true) para seleccionarlo:
selectedRowIds.forEach((id) => { gridApi?.getRowNode(id)?.setSelected(true); });