List 列表

单个连续模块垂直排列,显示当前的内容、状态和可进行的操作。eg:联系人列表。

规则

  • 一般由主要信息、主要操作、次要信息、次要操作组成。

  • 主要信息和主要操作放在列表的左边,次要信息和次要操作放在列表的右边。

代码演示

示例

  1. import { List } from 'antd-mobile';
  2. const Item = List.Item;
  3. const Brief = Item.Brief;
  4. const ListExample = React.createClass({
  5. render() {
  6. return (<div>
  7. <List renderHeader={() => '左侧无icon'} className="my-list">
  8. <Item data-seed="logId">标题文字点击无反馈,文字超长则隐藏,文字超长则隐藏</Item>
  9. <Item wrap>文字超长折行文字超长折行文字超长折行文字超长折行文字超长折行文字超长折行</Item>
  10. <Item extra="箭头向右" arrow="horizontal" onClick={() => {}}>标题文字</Item>
  11. <Item extra="箭头向下" arrow="down" onClick={() => {}}>标题文字</Item>
  12. <Item extra="箭头向上" arrow="up" onClick={() => {}}>标题文字</Item>
  13. <Item extra="内容内容" multipleLine align="top" wrap>
  14. 多行标题文字,文字可能比较长、文字可能比较长、直接折行
  15. </Item>
  16. <Item extra="内容内容" multipleLine>
  17. 垂直居中对齐 <Brief>辅助文字内容</Brief>
  18. </Item>
  19. <Item extra="没有箭头" arrow="empty" className="spe" wrap>
  20. 极个别情况下,单行标题文字可能比较长,文字可能比较长、文字可能比较长、靠近右边会折行
  21. </Item>
  22. <Item>
  23. <select defaultValue="1">
  24. <option value="1">这是原生 html select</option>
  25. <option value="2" disabled>不可选</option>
  26. <option value="3">选项3</option>
  27. </select>
  28. </Item>
  29. </List>
  30. <div style={{ height: '0.16rem' }} />
  31. <List renderHeader={() => '左侧带图片'}>
  32. <Item
  33. thumb="https://zos.alipayobjects.com/rmsportal/dNuvNrtqUztHCwM.png"
  34. arrow="horizontal"
  35. onClick={() => {}}
  36. >我的钱包</Item>
  37. <Item thumb="https://zos.alipayobjects.com/rmsportal/UmbJMbWOejVOpxe.png">我的花销占比</Item>
  38. </List>
  39. <div style={{ height: '0.32rem' }} />
  40. </div>);
  41. },
  42. });
  43. ReactDOM.render(<ListExample />, mountNode);
  1. .my-list .spe .am-list-extra {
  2. flex-basis: initial;
  3. }

表单中的应用示例

表单集合. (使用 rc-form 文档 做表单验证)

  1. import { List, InputItem, Switch, Stepper, Slider, Button } from 'antd-mobile';
  2. import { createForm } from 'rc-form';
  3. const Item = List.Item;
  4. let BasicInput = React.createClass({
  5. getInitialState() {
  6. return {
  7. value: 1,
  8. };
  9. },
  10. onSubmit() {
  11. this.props.form.validateFields({ force: true }, (error) => {
  12. if (!error) {
  13. console.log(this.props.form.getFieldsValue());
  14. } else {
  15. alert('校验失败');
  16. }
  17. });
  18. },
  19. onReset() {
  20. this.props.form.resetFields();
  21. },
  22. validateAccount(rule, value, callback) {
  23. if (value && value.length > 4) {
  24. callback();
  25. } else {
  26. callback(new Error('帐号至少4个字符'));
  27. }
  28. },
  29. render() {
  30. const { getFieldProps, getFieldError } = this.props.form;
  31. return (<form>
  32. <List renderHeader={() => '验证表单'}
  33. renderFooter={() => getFieldError('account') && getFieldError('account').join(',')}
  34. >
  35. <InputItem
  36. {...getFieldProps('account', {
  37. // initialValue: '小蚂蚁',
  38. rules: [
  39. { required: true, message: '请输入帐号' },
  40. { validator: this.validateAccount },
  41. ],
  42. })}
  43. clear
  44. error={!!getFieldError('account')}
  45. onErrorClick={() => {
  46. alert(getFieldError('account').join('、'));
  47. }}
  48. placeholder="请输入账号"
  49. >帐号</InputItem>
  50. <InputItem {...getFieldProps('password')} placeholder="请输入密码" type="password">
  51. 密码
  52. </InputItem>
  53. <Item
  54. extra={<Switch {...getFieldProps('1', { initialValue: true, valuePropName: 'checked' })} />}
  55. >确认信息</Item>
  56. <Item><Slider range defaultValue={[20, 50]} /></Item>
  57. <Item extra={<Stepper style={{ width: '100%', minWidth: '2rem' }} showNumber size="small" defaultValue={20} />}>预定人数</Item>
  58. </List>
  59. <div style={{ margin: 12 }}>
  60. <Button type="primary" onClick={this.onSubmit} inline>提交验证</Button>
  61. <Button onClick={this.onReset} inline style={{ marginLeft: 5 }}>重置</Button>
  62. </div>
  63. </form>);
  64. },
  65. });
  66. BasicInput = createForm()(BasicInput);
  67. ReactDOM.render(<BasicInput />, mountNode);

List列表 - 图1

API ( 适用平台:WEB、React-Native )

List

成员说明类型默认值
renderHeaderlist heder(): void
renderFooterlist footer(): void

List.Item

成员说明类型默认值
thumb缩略图(当为 string 类型时作为 img src)String/React.Element
extra右边内容String/React.Element
arrow箭头方向(右,上,下), 可选horizontal,up,down,empty,如果是empty则存在对应的dom,但是不显示String
alignFlex 子元素垂直对齐,可选top,middle,bottomStringmiddle
onClick点击事件的回调函数(): void
error报错样式,右侧文字颜色变成橙色Booleanfalse
multipleLine多行Booleanfalse
wrap是否换行,默认情况下,文字超长会被隐藏,Booleanfalse

List.Item.Brief

辅助说明