Фабрика пагинации и пагинация API Django
Моя цель состоит в том, чтобы сделать пагинацию результатов для пагинации react-bootstrap-table2
с помощью Django api.
Моя проблема в том, что таблица получает данные из массива results
от конечной точки api. Это приводит к тому, что я должен установить состояние с данными внутри results
. В настоящее время api ограничивает смещение 100 на запрос.
Вместо этого мне понадобится count
, next
конечная точка и prev
, если применимо. Как я могу получить следующий бит данных из смещения?
Еще одна проблема, связанная с этим, когда я делаю запрос без добавления .results
на setMealDashboard(data)
, я получаю undefined
и он ожидает массив, несмотря на добавление results.id
к столбцам. Как я могу обойти это, чтобы все было в состоянии mealDashboardData
?
Pagination Const:
const pagination = paginationFactory({
sizePerPage: 50,
showTotal: true,
});
Мои данные:
count: 600
next: "http://localhost:8000/api/meals/?limit=100&offset=100"
previous: null
results: [.....
const [mealDashboardData, setMealDashboard] = useState([]);
useEffect(() => {
const getMealDashboard = async () => {
try {
const { data } = await fetchContext.authAxios.get(
`/api/meals/`
);
setMealDashboard(data.results);
console.log(data);
} catch (err) {
console.log(err);
}
};
getMealDashboard();
}, [fetchContext]);
Мой компонент:
<ToolkitProvider
bootstrap4
keyField="id"
data={mealDashboardData}
columns={columns}
search
>
{(props) => (
<div>
<div className="search float-right">
<SearchBar {...props.searchProps} />
<button
type="button"
className="btn"
onClick={() => props.searchProps.onSearch('')}
>
X
</button>
</div>
<BootstrapTable
{...props.baseProps}
filter={filterFactory()}
pagination={pagination}
striped
hover
condensed
expandRow={expandRow}
wrapperClasses="table-responsive"
noDataIndication={() => <Loader />}
/>
</div>
)}
</ToolkitProvider>