2.1.4 • Published 11 days ago

react-advanced-datatable v2.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
11 days ago

Getting Started with react-advanced-datatable

`npm install react-advanced-datatable`

Usage

  1. Import the DataTable component, the necessary CSS styles, and Axios for making API requests:
import DataTable from 'react-advanced-datatable';
import axios from 'axios';
  1. Define the state for the DataTable component, including the data, current page, rows per page, and total pages:
const [state, setState] = useState({
  rowsPerPage: 3,
  data: [],
  currentPage: 2,
  totalPages: 0,
});
  1. Create a function to fetch the data from the API using Axios, and update the state with the results:
const fetchData = async () => {
  await axios
    .get(`http://localhost:3001/api/books/page=${state.currentPage}&total=${state.rowsPerPage}`)
    .then(res => {
      setState({ ...state, data: res.data.data, totalPages: res.data.total });
      console.log(res.data);
    });
};
  1. Use the useEffect hook to fetch the data when the component mounts:
<DataTable
  className={'striped table-bordered package-table'}
  hideColumns={["age","location3"]}
  state={state}
  backendPagination={true}
  setState={setState}
  tableOptions={[
    {
      column: '#',
      appearAs: '#',
      width: '10px',
      frozen: true,
      render: (object, value) => (
        <>
          <input type="checkbox" className="m-auto" />
        </>
      ),
    },
    {
      column: 'age',
      appearAs: 'Age',
      width: '180px',
      frozen: true,
      render: null,
    },
    {
      column: 'name',
      appearAs: 'Name',
      width: '180px',
      frozen: false,
      render: null,
    },
    {
      column: 'location3',
      appearAs: 'Location 3',
      width: '201px',
      frozen: false,
      render: (object, value) => (
        <>
          {value}
          <button className="btn btn-sm btn-outline-danger p-0 px-2 ms-auto" onClick={() => console.log(value)}>
            view
          </button>
        </>
      ),
    },
    {
      column: 'location4',
      appearAs: 'Location 4',
      width: '50px',
      frozen: false,
      render: (object, value) => (
        <button className="btn btn-sm btn-outline-danger p-0 px-2 ms-auto">{value}</button>
      ),
    },
  ]}
/>

Props

The DataTable component accepts the following props:

  • className: The class name for the table. Optional.
  • backendPagination: controls whether you want to paginate data from the server or not. By default the package paginates from the client side.
  • state: An object that defines the state of the table, including the data, current-page, rows-per-page, and total-pages. Required.
  • setState: A function to update the state of the table. Required.
  • tableOptions: An array of objects that define the columns of the table, including their name, appearance, width, and rendering function. Required.
2.1.4

11 days ago

2.1.2

6 months ago

2.1.1

6 months ago

2.1.3

6 months ago

2.1.0

6 months ago

2.0.7

12 months ago

2.0.8

12 months ago

2.0.6

1 year ago

2.0.5

1 year ago

2.0.4

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

0.1.0

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago