AllenFang / react-bootstrap-table

A Bootstrap table built with React.js
https://allenfang.github.io/react-bootstrap-table/
MIT License
2.24k stars 783 forks source link

Column Filter in react-bootstrap-table-next not working? #2120

Open hirocsingh opened 3 years ago

hirocsingh commented 3 years ago

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 example from here

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

julienmouraddotcom commented 3 years ago

@hirocsingh , you're overriding your categoryFilter function when you do categoryFilter = category. It's no longer a function but a string instead (assuming this is what you're passing when you click on the button).

You just need to do:

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