UNPKG

@td-design/react-native

Version:

react-native UI组件库

43 lines (41 loc) 1.13 kB
import { useEffect } from 'react'; import { useMemoizedFn, useSafeState } from '@td-design/rn-hooks'; export default function usePagination(_ref) { let { page = 1, pageSize = 10, total, onChange } = _ref; const [current, setCurrent] = useSafeState(page); const [totalPage, setTotalPage] = useSafeState(Math.ceil(total / pageSize)); useEffect(() => { setCurrent(page); }, [page]); useEffect(() => { setTotalPage(Math.ceil(total / pageSize)); }, [pageSize, total]); const isFirstPage = current === 1; const isLastPage = current === totalPage; /** 前一页 */ const prev = () => { const perPage = current - 1; setCurrent(perPage); onChange === null || onChange === void 0 ? void 0 : onChange(perPage); }; /** 后一页 */ const next = () => { const nextPage = current + 1; setCurrent(nextPage); onChange === null || onChange === void 0 ? void 0 : onChange(nextPage); }; return { current, totalPage, isFirstPage, isLastPage, prev: useMemoizedFn(prev), next: useMemoizedFn(next) }; } //# sourceMappingURL=usePagination.js.map