API通过首字母排序
actionRef --操作 table
Table action 的引用,便于自定义触发 .
有时我们要手动触发 table 的 reload 等操作,可以使用actionRef,可编辑表格也提供了一些操作来帮助我们更快的实现需求。
TS类型
interface ActionType {
reload: (resetPageIndex?: boolean) => void;
reloadAndRest: () => void;
reset: () => void;
clearSelected?: () => void;
startEditable: (rowKey: Key) => boolean;
cancelEditable: (rowKey: Key) => boolean;
}
用法
const ref = useRef<ActionType>();
<ProTable actionRef={ref} />;
参数
//重新刷新表格
ref.current.reload()
//重置表格
ref.current.reset()
//刷新并清空,页码也会重置,不包括表单
ref.current.creloadAndRest()
//清空选中项
ref.current.clearSelected()
//开始编辑
ref.current.startEditable(rowkey)
//结束编辑
ref.current.cancelEditable(rowKey)
beforeSearchSubmit -- 搜索前
搜索之前进行一些修改
cardBordered -- 边框
为false,则Table 和 Search 外围 Card 组件的边框全不没有
如果为{},则通过
search,table来分别控制边框
columnEmptyText --空值显示
空值时的显示,不设置时显示 -, false 可以关闭此功能
columnsState --列的显示隐藏
受控的列状态,可以操作显示隐藏,
可以用默认隐藏一些列,通过存储浏览器来保存显示哪些列
| 属性 | 描述 | 类型 | 默认值 | |
|---|---|---|---|---|
| defaultValue | 列状态的默认值,只有初次生效 | Record; | - | |
| value | 列状态的值,支持受控模式 | Record; | - | |
| onChange | 列状态的值发生改变之后触发 | (value:Record)=>void | - | |
| persistenceKey | 持久化列的 key,用于判断是否是同一个 table | `string | number` | - |
| persistenceType | 持久化列的类类型, localStorage 设置在关闭浏览器后也是存在的,sessionStorage 关闭浏览器后会丢失 | `localStorage | sessionStorage` | - |
defaultData -- 默认数据
用于填写默认数据,在没有数据的时候显示。
defaultSize --默认size
默认的 size,三种大小“large”,"middle","small"。
dateFormatter -- 改时间格式
转化 moment 格式数据为特定类型,false 不做转化
三种格式可选(时间格式可自己设置)
1.string
2.number
//3.使用自定义函数进行日期格式化
dateFormatter={(value, valueType) => {
console.log('====>', value, valueType);
return value.format('YYYY-MM-DD HH:mm:ss');
}}
dataSource -- Table数据
Table 的数据,protable 推荐使用 request 来加载
debounceTime -- 防抖时间
防抖时间-默认为10
editable --编辑表格
可编辑表格的相关配置 (暂时不说明)
ErrorBoundary --错误处理
自带了错误处理功能,防止白屏,ErrorBoundary=false 关闭默认错误边界
form --表格
antd form 的配置
formRef --查询表单的form示例
可以获取到查询表单的 form 实例,用于一些灵活的配置
操作自带的 form
用法:
import type { ProColumns, ProFormInstance } from '@ant-design/pro-components'
const ref = useRef<ProFormInstance>();
<ProTable formRef={ref}/>
参数
//查询表单赋值
ref.current.setFieldsValue()
//查询提交表单
ref.current.submit()
...(和form参数一样)
manualRequest --首次触发
是否需要手动触发首次请求, 配置为 true 时不可隐藏搜索表单 ,默认false,设置后requst中的请求不会主动触发。
onDataSourceChange --数据改变触发的函数
Table 的数据发生改变时触发 ,可编辑表格修改数据的改变。
onLoad --加载
数据加载完成后触发,会多次触发
onLoadingChange --loading修改
loading 被修改时触发,一般是网络请求导致的
onRequestError -- 加载触发
数据加载失败时触发
onReset --重置表单
重置表单时触发
onSizeChange --改变尺寸
table 尺寸发生改变
onSubmit --提交表单
提交表单时触发
options -- table工具栏
table 工具栏,设为 false 时不显示.传入 function 会点击时触发
type OptionConfig = {
//控制密度按钮
density?: boolean;
//全屏按钮
fullScreen?: OptionsType;
//刷新按钮
reload?: OptionsType;
//列设置
setting?: boolean | SettingOptionType;
//搜索 为ture时,点击搜索框,触发requset,如果 onSearch 返回一个 false,直接拦截请求
search?: (OptionSearchProps & {
name?: string;
}) | boolean;
}
//列设置参数
type SettingOptionType = {
//是否拖动排序
draggable?: boolean;
//是否隐藏列
checkable?: boolean;
//重置按钮
checkedReset?: boolean;
//列表高度
listsHeight?: number;
//补充组件
extra?: React.ReactNode;
//列设置按钮
children?: React.ReactNode;
};
params -- 重新加载
用于 request 查询的额外参数,一旦变化会触发重新加载
postData -- 数据处理
对通过 request 获取的数据进行处理
requset查询表单
获取dataSource的方法,简单来说是渲染数据的方法,可以做查询表单数据。
requse是一个箭头函数。函数内有三个参数 params,sort,filter,
可以return一个函数或者一个对象.如果是对象必须要有data,success,total
params
params 一定会有pageSize和 current,这两个参数是 antd 的规范 ,还有你自己筛选的条件。
sort
分类
filter
过滤
用法:
<ProTable<DataType, Params>
// params 是需要自带的参数
// 这个参数优先级更高,会覆盖查询表单的参数
params={params}
request={async (
// 第一个参数 params 查询表单和 params 参数的结合
// 第一个参数中一定会有 pageSize 和 current ,这两个参数是 antd 的规范
params: T & {
pageSize: number;
current: number;
},
sort,
filter,
) => {
// 这里需要返回一个 Promise,在返回之前你可以进行数据转化
// 如果需要转化参数可以在这里进行修改
const msg = await myQuery({
page: params.current,
pageSize: params.pageSize,
});
return {
data: msg.result,
// success 请返回 true,
// 不然 table 会停止解析数据,即使有数据
success: boolean,
// 不传会使用 data 的长度,如果是分页一定要传
total: number,
};
}}
/>
revalidateOnFocus -- 聚焦
窗口聚焦时自动重新请求
search--搜索表单
是否显示搜索表单,传入对象时为搜索表单的配置
为false不显示
| filterType | 过滤表单类型 | 'query' | 'light' | 'query' |
|---|---|---|---|---|
| searchText | 查询按钮的文本 | string | 查询 | |
| resetText | 重置按钮的文本 | string | 重置 | |
| submitText | 提交按钮的文本 | string | 提交 | |
| labelWidth | 标签的宽度 | 'number' | 'auto' | 80 |
| span | 配置查询表单的列数 | 'number' | 'ColConfig' | defaultColConfig |
| className | 封装的搜索 Form 的 className | string | - | |
| collapseRender | 收起按钮的 render | (collapsed: boolean,showCollapseButton?: boolean,) => ReactNode | - | |
| defaultCollapsed | 默认是否收起 | boolean | true | |
| collapsed | 是否收起 | boolean | - | |
| onCollapse | 收起按钮的事件 | (collapsed: boolean) => void; | - | |
| optionRender | 自定义操作栏 | ((searchConfig,formProps,dom) => ReactNode[]) | false | - |
| showHiddenNum | 是否显示收起之后显示隐藏个数 | boolean | false |
tableClassName -- 类名
封装的 table 的 className
tableExtraRender-- 自定义表格的主体函数
自定义表格主体函数
tableRender -- 自定义渲染表格函数
自定义渲染表格主体
tableStyle -- 样式
封装的 table 的 style
toolbar
透传 ListToolBar 配置项
| 参数 | 说明 |
|---|---|
| title | 标题 |
| subTitle | 子标题 |
| description | 描述 |
| search | 查询区 |
| actions | 操作区 |
| settings | 设置区 |
| filter | 过滤区,通常配合 LightFilter 使用 |
| multipleLine | 是否多行展示,默认false |
| menu | 菜单 |
| tabs | 标签页配置,仅当 multipleLine 为 true 时有效 |
toolBarRender --工具栏
渲染工具栏,支持返回一个 dom 数组,会自动增加 margin-right
type --类型
pro-table 类型 'form' , 'list' , 'descriptions' , 'table' , 'cardList' |,undefined