Я пытаюсь превратить длинный список объектов (учетных записей) в меньшие массивы из 6 или меньше. Я делаю это, потому что в моем компоненте реагирования есть таблица, в которой перечислены все учетные записи, однако она не может содержать более 6 учетных записей. Я создал нумерацию страниц и все, и думал, что это будет работать, но текущая страница, кажется, никогда не обновляется.
const [pageNum, setPageNum] = useState(1);
const [numOfPages, setNumOfPages] = useState(Math.ceil(accounts.length / 6));
const [page, setPage] = useState([]);
const [pages, setPages] = useState([null]);
const onClick = (e) => {
setPageNum(pageNum + 1);
setPage(pages[pageNum]);
};
useEffect(() => {
if (numOfPages > 1) {
for (let i = 0; i < 6; i++) {
setPages(pages.push(accounts.slice(i * 6, i * 6 + 6)));
}
}
console.log(pages[1][1]);
console.log(pages[2][2]);
setPage([pages[1][1], pages[1][2]]);
console.log(page);
}, []);
Это не окончательный код, а скорее часть моего устранения неполадок, и я также думаю, что именно там и возникает проблема. Когда я консоль страниц журнала [1] [1] и страниц [1] [2], я получаю два отдельных объекта. Так как же получилось, что после использования setPage и размещения двух «объектов» внутри массива, консольный журнал страницы выглядит как пустой массив? Я пробовал рефакторинг очень многих вещей. Я изменил страницы на объект вместо массива, я попытался сделать это другим методом вместо useEffect, все виды вещей. Но root проблемы заключается в том, что мои методы setPage и мои setPageNum часто терпят неудачу, по-видимому, без причины.