【发布时间】:2020-04-29 22:18:33
【问题描述】:
我正在尝试将一长串对象(帐户)转换为 6 个或更少的较小数组。我这样做是因为我的 react 组件中有一个表格,其中列出了所有帐户,但是,它不能容纳超过 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 来做,各种各样的事情。但问题的根源似乎是我的“setPage”和“setPageNum”方法常常无缘无故地失败。
【问题讨论】:
标签: javascript arrays reactjs react-hooks