Switch 滑动开关

在两个互斥对象进行选择,eg:选择开或关。

规则

  • 只在 List 中使用。

  • 避免增加额外的文案来描述当前 Switch 的值。

代码演示

基本

Switch. (rc-form document)

  1. import { List, Switch } from 'antd-mobile';
  2. import { createForm } from 'rc-form';
  3. class SwitchExample extends React.Component {
  4. constructor(props) {
  5. super(props);
  6. this.state = {
  7. checked: false,
  8. checked1: true,
  9. };
  10. }
  11. render() {
  12. const { getFieldProps } = this.props.form;
  13. return (
  14. <List
  15. renderHeader={() => 'Form switch'}
  16. >
  17. <List.Item
  18. extra={<Switch
  19. checked={this.state.checked}
  20. onChange={() => {
  21. this.setState({
  22. checked: !this.state.checked,
  23. });
  24. }}
  25. />}
  26. >Off</List.Item>
  27. <List.Item
  28. extra={<Switch
  29. {...getFieldProps('Switch1', {
  30. initialValue: this.state.checked1,
  31. valuePropName: 'checked',
  32. onChange: (val) => {
  33. console.log(val);
  34. // Do not `setState` with rc-form
  35. // this.setState({ checked1: val });
  36. },
  37. })}
  38. onClick={(checked) => {
  39. // set new value
  40. this.props.form.setFieldsValue({
  41. Switch1: checked,
  42. });
  43. }}
  44. />}
  45. >On (with rc-form)</List.Item>
  46. <List.Item
  47. extra={<Switch
  48. {...getFieldProps('Switch3', {
  49. initialValue: false,
  50. valuePropName: 'checked',
  51. })}
  52. onClick={(checked) => { console.log(checked); }}
  53. disabled
  54. />}
  55. >Disabled off</List.Item>
  56. <List.Item
  57. extra={<Switch
  58. {...getFieldProps('Switch4', {
  59. initialValue: true,
  60. valuePropName: 'checked',
  61. })}
  62. onClick={(checked) => { console.log(checked); }}
  63. disabled
  64. />}
  65. >Disabled on</List.Item>
  66. <List.Item
  67. extra={<Switch
  68. {...getFieldProps('Switch5', {
  69. initialValue: true,
  70. valuePropName: 'checked',
  71. })}
  72. platform="android"
  73. />}
  74. >Style for Android</List.Item>
  75. <List.Item
  76. extra={<Switch
  77. {...getFieldProps('Switch6', {
  78. initialValue: true,
  79. valuePropName: 'checked',
  80. })}
  81. platform="android"
  82. color="red"
  83. />}
  84. >Color for Android</List.Item>
  85. <List.Item
  86. extra={<Switch
  87. {...getFieldProps('Switch7', {
  88. initialValue: true,
  89. valuePropName: 'checked',
  90. })}
  91. platform="ios"
  92. />}
  93. >Style for iOS</List.Item>
  94. <List.Item
  95. extra={<Switch
  96. {...getFieldProps('Switch8', {
  97. initialValue: true,
  98. valuePropName: 'checked',
  99. })}
  100. platform="ios"
  101. color="red"
  102. />}
  103. >Color for iOS</List.Item>
  104. </List>
  105. );
  106. }
  107. }
  108. const Se = createForm()(SwitchExample);
  109. ReactDOM.render(<Se />, mountNode);

Switch滑动开关 - 图1

API

属性说明类型默认值
checked是否默认选中Booleanfalse
disabled是否不可修改Booleanfalse
onChangechange 事件触发的回调函数(checked: bool): void
color开关打开后的颜色String#4dd865
nameswitch 的 nameString
platform设定组件的平台特有样式, 可选值为 android, ios, 默认为 iosString'ios'
onClickclick事件触发的回调函数,当switch为disabled时,入参的值始终是默认传入的checked值。(checked: bool): void