react-mui-datatables is table component for Material-UI V1. This version comes with search,export csv,sort,pagination,print. more options coming soon.stay with us...
npm install react-mui-datatables --save
For a simple table:
import MuiDataTable from "react-mui-datatables";
import data from "./data";
class App extends Component {
    constructor(props) {
        super(props);
        App.handleClick = App.handleClick.bind(this);
    }
    componentWillMount() {
    }
    /*
    * This function for handle your action button click event 
    * if you add action button you can get your own key from array using below command
    * please add indexColumn key to options object.
    */
    static handleClick(e) {
        /* Your code is here.alert is the example */
        alert("parent td#id: " + e.target.parentNode.id);
    }
    render() {
        const columns = [
            { 
                label: "First Name", 
                key: "fname", /* this value is the your array object key.if you did't add this table is not working */
                sort: true  /* you can set column sort true / false as your own */
            },
            { label: "Last Name", key: "lname", sort: true },
            { label: "Email", key: "email" },
            { label: "Gender", key: "gender" },
            { label: "Action", key: "action" }, /* <-- this is required if you using customAction */
        ]; /* <-- Table header columns. this is required */
        const action = <Button onClick={App.handleClick}>Action</Button>; /* <-- action button */
        const options = {
            hasIndex: true, /* <-- use numbers for rows*/
            customAction: action, /* <-- use action button for row */
            searchBox: true, /* <-- search true or false */
            csv: true, /* <-- csv download true or false */
            indexColumn: "fname" /* <-- add your data first unique column name for this like _id, i used fname because i don't have a _id field in my array */
        };
        return (
            <div>
                <MuiDataTable data={data} columns={columns} options={options} title={"User Data"} />
            </div>
        );
    }
}This component accepts the following props:
| Name | Type | Description | 
|---|---|---|
| title | array | Title used to caption table | 
| columns | array | Columns use to describe the table.this display on the table head cells.This is required | 
| data | array | Data is your data array.This is required | 
| options | object | Options use to customize your table | 
Options: Use these as option object key.
| Name | Type | Default | Description | 
|---|---|---|---|
| hasIndex | bool | false | This is use for create column with your index for adding numbers for rows first column | 
| customAction | string | You can add custom action button if you want.please add this as a component | |
| searchBox | bool | true | You can remove search box using this option | 
| csv | bool | true | You can remove csv download using this option | 
| indexColumn | string | If add custom action button please set the indexColumn as your own array key. | |
| printButton | bool | true | You can disable print button using this. | 
You can styles using material ui CreateMuiTheme function.
The files included in this repository are licensed under the MIT license.