React-Data-Grid设置选定的单元格

时间:2016-06-11 19:58:20

标签: javascript reactjs

使用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。

0 个答案:

没有答案