import * as React from "react"; import { Table, Cell, Column, CellProps } from "fixed-data-table"; // create your Table class MyTable1 extends React.Component { render(): React.ReactElement { return ( // add columns
); } } // create your Columns class MyTable2 extends React.Component { render(): React.ReactElement { return ( Basic content} width={200} />
); } } // provide Custom Data interface MyTable3State { myTableData: {name: string}[]; } class MyTable3 extends React.Component<{}, MyTable3State> { state = { myTableData: [ {name: "Rylan"}, {name: "Amelia"}, {name: "Estevan"}, {name: "Florence"}, {name: "Tressa"}, ] }; render(): React.ReactElement { return ( Name} cell={(props: CellProps) => ( {this.state.myTableData[props.rowIndex].name} )} width={200} />
); } } // Create Reusable Cells interface RowData { [field: string]: string; } interface MyCellProps extends CellProps { rowIndex?: number; field: string; myData: RowData[]; } class MyTextCell extends React.Component { render(): React.ReactElement { const {rowIndex, field, myData} = this.props; return ( {myData[rowIndex][field]} ); } } class MyLinkCell extends React.Component { render(): React.ReactElement { const {rowIndex, field, myData} = this.props; const link: string = myData[rowIndex][field]; return ( {link} ); } } interface MyTable4State { tableData: RowData[]; } class MyTable4 extends React.Component<{}, MyTable4State> { state = { tableData: [ {name: "Rylan", email: "Angelita_Weimann42@gmail.com"}, {name: "Amelia", email: "Dexter.Trantow57@hotmail.com"}, {name: "Estevan", email: "Aimee7@hotmail.com"}, {name: "Florence", email: "Jarrod.Bernier13@yahoo.com"}, {name: "Tressa", email: "Yadira1@hotmail.com"} ] }; render(): React.ReactElement { return ( { ["name", "email"].map(field => {field}} cell={ } width={200}/> ) }
); } } // Listen for events class MyTable5 extends React.Component { render(): React.ReactElement { return ( {}} onScrollEnd={(x: number, y: number) => {}} onContentHeightChange={(newHeight: number) => {}} onRowClick={(event: React.SyntheticEvent
, rowIndex: number) => {}} onRowDoubleClick={(event: React.SyntheticEvent
, rowIndex: number) => {}} onRowMouseDown={(event: React.SyntheticEvent
, rowIndex: number) => {}} onRowMouseEnter={(event: React.SyntheticEvent
, rowIndex: number) => {}} onRowMouseLeave={(event: React.SyntheticEvent
, rowIndex: number) => {}} onColumnResizeEndCallback={(newColumnWidth: number, columnKey: string) => {}}> // add columns
); } }