I have two function, one for retrieve filters and format it in object, and one when table page change. The problem is when i set a new state in the handle page change function, when i call the function to get filters in the same function it is not working.
My code :
const getFilters = () => {
var filters = [
{'name': 'settlements.from_date', 'value': startDate.getFullYear()+'-'+(startDate.getMonth()+1)+'-'+startDate.getDate()},
{'name': 'settlements.to_date', 'value': endDate.getFullYear()+'-'+(endDate.getMonth()+1)+'-'+endDate.getDate()},
{'name': 'datatable|per_page', 'value': perPage },
{'name': 'datatable|page', 'value': page },
];
if(isPaid != "all") {
filters = [
...filters,
{'name': 'is_paid#having', 'value': isPaid}
];
}
if(partner != "all") {
filters = [
...filters,
{'name': 'settlements.partners_id', 'value': partner}
];
}
return filters;
}
const handlePageChange = page => {
console.log('page : '+page);
setPage(page);
console.log(getFilters());
};
In the function handlePageChange, the console log for page equals to the new value, but the console log for getFilters echo the past value (-1).
Someone had idea ?