@lovelope/table-factory
Version:
Combinable higher order components for list.
71 lines (59 loc) • 2.99 kB
Markdown
`TableFactory` 是一个用于管理列表页的高阶组件;主要负责数据的拉取和筛选条件的管理;
[](./README.md)
[中文](./README.zh-CN.md)
```bash
npm i -S @lovelope/table-factory
yarn add -S @lovelope/table-factory
```
```jsx
import TableFactory from '@lovelope/table-factory';
import React from 'react';
import { getGoodsList } from './services';
@TableFactory({
getAction: getGoodsList,
params: { pid },
mute: ['searchWords'],
})
class GoodsList extends React.Component {
render() {
const {
data: { list },
query,
loadData,
onFilter,
onReset,
} = this.props;
return (
<div>
<div className="header">
<YourFilter onFilter={onFilter} query={query} onReset={onReset} />
</div>
<div className="body">
<Table dataSource={list} />
</div>
</div>
);
}
}
```
| 属性 | 说明 | 类型 | 必填 | 默认值 |
| --------- | ------------------------------------------------------------------------ | ------------- | ----- | -------------------------------------- |
| immediate | 用于控制筛选条件改变时是否立即发送请求获取数据 | boolean | false | true |
| enums | 用一组对象修改页面的页数部分的请求参数名字(默认为 page, pageSize) | object | false | { page: 'page', pageSize: 'pageSize' } |
| mute | 控制不立即发送请求的请求参数(比如关键字搜索时,可能并不想输入就立即搜索) | [] | false | ['keyword'] |
| getAction | 获取 table 数据的请求 | () => promise | true | -- |
| params | getAction 除筛选条件外的额外可能参数 | object | false | {} |
| format | getAction 在发起请求前的数据处理函数 | function | false | p => p |
- TableFactory 向组件注入了 data, query, onFilter, onReset, loadData 五个 props;
- data 是 getAction 返回的数据;
- onFilter 是给 tableFactory 传参的方法,接收两个参数,第一个是参数对象,第二个是传参后的回调;
- onReset,如果页面需要重置所有请求加参数,你可以使用这个方法;
- loadData,一个主动调取 table 数据的接口;
- query 是 getAction 的请求参数;你可能需要 query 来让组件受控,
- params 如果设置了额外的请求参数,onReset 是不会清空这些参数的,这在时间选择器回到某种初始值时也有帮助;