Table 表格
定义/Definition
标签栏用于让用户在不同的子任务、视图和模式中进行切换。规则 / Rule
单列高度为44dp
表格中内容不宜附带组件,如需组件请选择表单或列表
数据中文字内容左对齐,数字内容以小数点对齐,单元格前后间距为margin-2;
当数据量很多无法一次展现完全,可以固定表格的表头或行标题列,方便用户横向或纵向滚动时阅读时对照属性;
h5页面中的表格,只能显示少量精简的内容,如果判断表格内内容文案过长,就不适合以表格形式展现;
h5页面中的表格横向最好显示4列以内;
代码演示
简单表格,默认为纵向排列
简单的表格,无表头,用标题列替代表头,columns第一项为取竖向标题的索引,dataSource每项中需要指定标题的值。
import { Table } from 'antd-mobile';
const columns = [
{ title: '名字', dataIndex: 'name', key: 'name' },
{ title: '品种', dataIndex: 'type', key: 'type' },
{ title: '属性', dataIndex: 'class', key: 'class' },
];
const data = [{
name: '科多',
type: '英短',
class: '猫',
key: '1',
}, {
name: '萨满',
type: '英短',
class: '猫',
key: '2',
}, {
name: '开心',
type: '约克夏',
class: '犬',
key: '3',
}];
ReactDOM.render(<div style={{ padding: 20 }}>
<Table
columns={columns}
dataSource={data}
/>
</div>, mountNode);
有表头和标题列混合使用
import { Table } from 'antd-mobile';
const columns = [
{ title: '标题', dataIndex: 'title', key: 'title' },
{ title: '名字', dataIndex: 'name', key: 'name' },
{ title: '品种', dataIndex: 'type', key: 'type' },
{ title: '属性', dataIndex: 'class', key: 'class' },
];
const data = [{
title: '宠物一',
name: '科多',
type: '英短',
class: '猫',
key: '1',
}, {
title: '宠物二',
name: '萨满',
type: '英短',
class: '猫',
key: '2',
}, {
title: '宠物三',
name: '开心',
type: '约克夏',
class: '犬',
key: '3',
}];
ReactDOM.render(<div style={{ padding: 20 }}>
<Table
direction="horizon"
columns={columns}
dataSource={data}
/>
</div>, mountNode);
横向滚动的表格,无锁定项
import { Table } from 'antd-mobile';
const columns = [
{ title: '', dataIndex: 'title', key: 'title' },
{ title: '名字', dataIndex: 'name', key: 'name' },
{ title: '品种', dataIndex: 'type', key: 'type' },
{ title: '属性', dataIndex: 'class', key: 'class' },
];
const data = [{
title: '宠物一',
name: '科多',
type: '英短',
class: '猫',
key: '1',
}, {
title: '宠物二',
name: '萨满',
type: '英短',
class: '猫',
key: '2',
}, {
title: '宠物三',
name: '开心',
type: '约克夏',
class: '犬',
key: '3',
}];
ReactDOM.render(<div style={{ padding: 20 }}>
<Table
direction="mix"
columns={columns}
dataSource={data}
/>
</div>, mountNode);
标题列锁定,可横向滚动
import { Table } from 'antd-mobile';
const columns = [
{ title: '姓名', dataIndex: 'a', key: 'a', width: 100 },
{ title: '年龄', dataIndex: 'b', key: 'b', width: 100 },
{ title: '身高', dataIndex: 'c', key: 'c', width: 100 },
{ title: '体重', dataIndex: 'b', key: 'd', width: 100 },
{ title: '爱好', dataIndex: 'b', key: 'e', width: 100 },
{ title: '生日', dataIndex: 'b', key: 'f', width: 100 },
{ title: '住址', dataIndex: 'b', key: 'g', width: 100 },
{ title: '电话', dataIndex: 'b', key: 'h', width: 100 },
{ title: '邮编', dataIndex: 'b', key: 'i', width: 100 },
{ title: '其他', dataIndex: 'b', key: 'j', width: 100 },
];
const data = [
{ a: '二哈', b: '32', d: 3, key: '1' },
{ a: '小明', b: '98', d: 3, key: '2' },
{ a: '猪头', c: '16', d: 2, key: '3' },
{ a: '小二', c: '33', d: 2, key: '4' },
];
ReactDOM.render(<div style={{ padding: 20 }}>
<Table
scrollX
columns={columns}
dataSource={data}
/>
</div>, mountNode);
import { Table } from 'antd-mobile';
const columns = [
{ title: '标题', dataIndex: 'title', key: 'title', width: 100, fixed: 'left' },
{ title: '姓名', dataIndex: 'a', key: 'a', width: 100 },
{ title: '年龄', dataIndex: 'b', key: 'b', width: 100 },
{ title: '身高', dataIndex: 'c', key: 'c', width: 100 },
{ title: '体重', dataIndex: 'b', key: 'd', width: 100 },
{ title: '爱好', dataIndex: 'b', key: 'e', width: 100 },
{ title: '生日', dataIndex: 'b', key: 'f', width: 100 },
{ title: '住址', dataIndex: 'b', key: 'g', width: 100 },
{ title: '电话', dataIndex: 'b', key: 'h', width: 100 },
{ title: '邮编', dataIndex: 'b', key: 'i', width: 100 },
{ title: '其他', dataIndex: 'b', key: 'j', width: 100 },
];
const data = [
{ title: '人物1', a: '二哈', b: '32', d: 3, key: '1' },
{ title: '人物2', a: '小明', b: '98', d: 3, key: '2' },
{ title: '人物3', a: '猪头', c: '16', d: 2, key: '3' },
{ title: '人物4', a: '小二', c: '33', d: 2, key: '4' },
];
ReactDOM.render(<div style={{ padding: 20 }}>
<Table
titleFixed
columns={columns}
dataSource={data}
/>
</div>, mountNode);
API
Tabs
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
columns | 表格列的配置描述,具体项见下表 | Array | - |
dataSource | 数据数组 | Array | - |
direction | 排列方式 horizon/vetical/mix | String | horizon |
scrollX | 是否横向滚动 | Boolean | false |
titleFixed | 横向滚动时,标题列是否固定 | Boolean | false |
columns
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
title | 列头显示文字 | String or React.Element | |
key | React 需要的 key,建议设置 | String | |
dataIndex | 列数据在数据项中对应的 key,支持 a.b.c 的嵌套写法 | String | |
render | 生成复杂数据的渲染函数,参数分别为当前行的值,当前行数据,行索引 | Function(text, record, index) {} |