reactjsreact-bootstrap-table

How to use Column Filter in react-bootstrap-table-next?


I have following widgets which represents categories form the data in the table: enter image description here

The flow is when a user clicks on one of the widgets the table should show data of that category only.

So far I have implemented following:

 const columns = [
 { 
  ....
  dataField: "Category", 
  formatter: formatCategory,
  text: "Category",
  sort: true,
  filter: textFilter({
    getFilter: (filter) => {
      // nameFilter was assigned once the component has been mounted.
      categoryFilter = filter;
    }
  })
  ....
}

Handle Clicking Event on Button and Passing the category:

const handleWidgetClick = (category) => {
   categoryFilter = category;

   // When I am doing something like this I am getting Uncaught Error
   // categoryFilter is not a Function
   categoryFilter(category) 
};

I have followed this example.

I am not sure what/where I am doing something wrong. Please guide me through it. Thanks.


Solution

  • <BootstrapTable
      hover
      bordered={false}
      bootstrap4
      keyField={"apps.App"}
      data={apps ? selectedCategory ?apps.filter((itm)=>{
        return itm.Category === selectedCategory
      }) :apps : no_Data}
      columns={columns}
      filter={ filterFactory() }
      noDataIndication={intl.formatMessage({ id: "GENERAL.NO_DATA" })}
    />