【发布时间】:2021-10-01 20:48:19
【问题描述】:
我正在使用一个自定义分页组件来对数组中的数据进行分页。当用户转到某个页面并刷新时,它会将用户带回第一页。我想我可以使用Local Storage 来处理这个问题。见下文:
export interface PublicProps {
ID: number;
}
const PAGE_SIZE: number = 10;
export const TestPage: React.FC<PublicProps> = ({ ID }) => {
const [currentPage, setCurrentPage] = useState<number>(1);
const suitesForProject = SOME DATA FROM AN ARRAY
const totalPages = suitesForProject.length
? Math.ceil(suitesForProject.length / PAGE_SIZE)
: 0;
const handleClickNext = () => {
if (!suitesForProject.length) {
return;
}
setCurrentPage((currentPage) => Math.min(currentPage + 1));
};
const handleClickPrev = () => {
if (!suitesForProject.length || currentPage === 1) {
return;
}
setCurrentPage((currentPage) => currentPage - 1);
};
return (
<>
{suitesForProject
.slice((currentPage - 1) * PAGE_SIZE, PAGE_SIZE * currentPage)
.map((suitesForProject) => (
//doing stuff with the data here
))}
<Pagination
currentPage={currentPage}
totalPages={totalPages}
onClickPrevious={handleClickPrev}
onClickNext={handleClickNext}
previousPageButtonAriaLabel="To previous page"
nextPageButtonAriaLabel="To next page"
/>
</>
);
};
有没有办法解决这个问题?
【问题讨论】:
-
是的,你可以在这里使用localStorage
-
@captain-yossarian,感谢您的回复。我无法在这里使用 localStorage 来解决问题
-
只需要声明localStorage的全局变量并在钩子中更新即可。使状态依赖于这个变量
标签: javascript arrays reactjs typescript local-storage