constructor(props) {
        super(props);
        const {
            children,
            showCheckboxColumn,
            keyField,
            data,
            showRowNumberColumn,
            rowNumberOffset,
            maxRowSelection,
            minColumnWidth,
            maxColumnWidth,
            selectedRows,
            variant,
        } = props;

        this.state = {
            columns: getColumns({
                children,
                showCheckboxColumn,
                showRowNumberColumn,
                rowNumberOffset,
                minColumnWidth,
                maxColumnWidth,
                variant,
            }),
            tableWidth: undefined,
            rows: getRows({
                keyField,
                rows: normalizeData(data),
                maxRowSelection: maxRowSelection && Number(maxRowSelection),
                selectedRowsKeys: {},
            }),
            bulkSelection: 'none',
        };
        const { rows } = this.state;
        this.indexes = getIndexes(rows);
        this.selectedRowsKeys = getSelectedRowKeysFromSelectedRows(selectedRows, this.indexes);

        this.tableId = uniqueId('table');
        this.tableContainerRef = React.createRef();
        this.resizeTarget = React.createRef();
        this.handleSort = this.handleSort.bind(this);
        this.handleResize = this.handleResize.bind(this);
        this.updateColumnsAndTableWidth = this.updateColumnsAndTableWidth.bind(this);
        this.handleSelectRow = this.handleSelectRow.bind(this);
        this.handleDeselectRow = this.handleDeselectRow.bind(this);
        this.handleSelectAllRows = this.handleSelectAllRows.bind(this);
        this.handleDeselectAllRows = this.handleDeselectAllRows.bind(this);

        this.scrollableY = React.createRef();
    }
A table lists a collection of data that makes sense when displays them in rows and columns.
The data contained in a table is easier to read due to the format, so it can be useful to sort,
search, and filter your data.
@category DataView