ttk-app-core
Version:
@ttk/recat enterprise develop framework
42 lines (37 loc) • 1.36 kB
JavaScript
import React, { useCallback } from 'react'
import { Pagination } from '@ttk/component'
import { useData, useActions, useCommit } from '@ttk/app-loader'
export default function (props) {
const actions = useActions(props)
const commit = useCommit()
const { pageIndex: currentPage, pageSize, recordCount: totalCount } = useData([props, 'pagination']).toJS()
const onShowSizeChange = useCallback((current, pageSize) => {
return async function () {
// 使用commit直接更新reducer中的数据状态
commit([props, 'tempState'], true)
await actions.updateSearchForm({ pageSize })
await actions.tableData()
commit([props, 'tempState'], false)
}()
})
const onChange = useCallback((page, pageSize) => {
return async function () {
// 使用commit直接更新reducer中的数据状态
commit([props, 'tempState'], true)
await actions.updateSearchForm({ currentPage: page })
await actions.tableData()
commit([props, 'tempState'], false)
}()
})
return <div className="ttk-table-app-simplelist-footer">
<Pagination
pageSize={pageSize}
total={totalCount}
current={currentPage}
showSizeChanger={true}
pageSizeOptions={['20', '50', '100', '200', '300', '400']}
onChange={onChange}
onShowSizeChange={onShowSizeChange}
/>
</div>
}