Question: Is there a way to manually trigger a onFetchData callback using [React-Table](https://www.npmjs.com/package/react-table).

in documentation I can find server-side section with says that onFetchData is called at componentDidMount and any time sorting, pagination or filterting is changed in the table. 

The question is: Can I trigger the onFetchData callback manually (it should update when other independent props change)?

Answer: 
Just if somebody is still looking for a way to do this, I was able to do it using hooks. You need a reference to the `ReactTable` component and then call `.fireFetchData()` to refetch the server data:

```
const Table = ({ columns, ...props }) => {
  const [data, setData] = useState([]);
  const [loading, setLoading] = useState(true);

  const reactTable = useRef();

  useEffect(() => {
    reactTable.current && reactTable.current.fireFetchData();
  }, [/* your variable(s) here*/]);

  return (
    <ReactTable
      ref={reactTable}
      data={data}
      loading={loading}
      columns={columns}
      manual
      onFetchData={(state, instance) => {
        setLoading(true);
        // ... fetchData
        setData(data);
        setLoading(false);
      }}
      {...props}
    />
  );
};

```
* add a ref to react table
* create a function for `onFetchData` that receives table 'state' which will call your data and set data and paging, etc
* get state from `ref.current.state` after your edit and call your fetch function with it, the state updates in your fetch calls promise return will update the table just like when it calls `onFetchData` itself.

```
    class MyComponent extends React.Component {
      constructor(props) {
        super(props);
        this.table = React.createRef();
        this.fetch = this.fetch.bind(this);
      }
      render() {
        return <ReactTable
           ref={this.table}
           onFetchData={this.fetch}
           ...
        />;
      }
      fetch(state){
        // make call -> then update state
      }
      onFinishedEditOrDelete(){
         this.fetch(this.table.current.state);
      }
    }

```