使用react-data-grid我想设置当前选定的单元格,即使组件是使用enabledCellSelect = false初始化的。
在ReactDataGrid.js中我可以看到props enableCellSelect确定selected是0还是-1,-1。
getInitialState: function(): {selected: SelectedType; copied: ?{idx: number; rowIdx: number}; selectedRows: Array<Row>; expandedRows: Array<Row>; canFilter: boolean; columnFilters: any; sortDirection: ?SortType; sortColumn: ?ExcelColumn; dragged: ?DraggedType; } {
let columnMetrics = this.createColumnMetrics();
let initialState = {columnMetrics, selectedRows: [], copied: null, expandedRows: [], canFilter: false, columnFilters: {}, sortDirection: null, sortColumn: null, dragged: null, scrollOffset: 0 };
if (this.props.enableCellSelect) {
initialState.selected = {rowIdx: 0, idx: 0};
} else {
initialState.selected = {rowIdx: -1, idx: -1};
}
return initialState;
},
这很好,除了在我的应用程序中,数据网格从最初的unEditable和UnSelectable变为可选择和可编辑。当enableCellSelect属性从false更改为true时,selected不会从0,0变为-1,-1。除了修改库之外,在挂载的组件上是否有任何React方法来设置setState?
如果我确实需要编写拉取请求,我正在考虑使用componentWillReceiveProps。在componentWillReceiveProps中,我会检查选择是否为-1,-1和enableCellSelected为真,如果是,我将设置选定状态。
到目前为止,我最好的方法(希望很快改变方法)是让组件使用enableCellSelected = true进行挂载,然后快速将其更改为false。