Switch开关

开关选择器。

何时使用

  • 需要表示开关状态/两种状态之间的切换时;

  • checkbox的区别是,切换 switch 会直接触发状态改变,而 checkbox 一般用于状态标记,需要和提交操作配合。

代码演示

Switch 开关 - 图1

基本

最简单的用法。

  1. import { Switch } from 'antd';
  2. function onChange(checked) {
  3. console.log(`switch to ${checked}`);
  4. }
  5. ReactDOM.render(<Switch defaultChecked onChange={onChange} />, mountNode);

Switch 开关 - 图2

文字和图标

带有文字和图标。

  1. import { Switch, Icon } from 'antd';
  2. ReactDOM.render(
  3. <div>
  4. <Switch checkedChildren="开" unCheckedChildren="关" defaultChecked />
  5. <br />
  6. <Switch checkedChildren="1" unCheckedChildren="0" />
  7. <br />
  8. <Switch
  9. checkedChildren={<Icon type="check" />}
  10. unCheckedChildren={<Icon type="close" />}
  11. defaultChecked
  12. />
  13. </div>,
  14. mountNode,
  15. );

Switch 开关 - 图3

加载中

标识开关操作仍在执行中。

  1. import { Switch } from 'antd';
  2. ReactDOM.render(
  3. <div>
  4. <Switch loading defaultChecked />
  5. <br />
  6. <Switch size="small" loading />
  7. </div>,
  8. mountNode,
  9. );

Switch 开关 - 图4

不可用

Switch 失效状态。

  1. import { Switch, Button } from 'antd';
  2. class App extends React.Component {
  3. state = {
  4. disabled: true,
  5. };
  6. toggle = () => {
  7. this.setState({
  8. disabled: !this.state.disabled,
  9. });
  10. };
  11. render() {
  12. return (
  13. <div>
  14. <Switch disabled={this.state.disabled} defaultChecked />
  15. <br />
  16. <Button type="primary" onClick={this.toggle}>
  17. Toggle disabled
  18. </Button>
  19. </div>
  20. );
  21. }
  22. }
  23. ReactDOM.render(<App />, mountNode);

Switch 开关 - 图5

两种大小

size="small" 表示小号开关。

  1. import { Switch } from 'antd';
  2. ReactDOM.render(
  3. <div>
  4. <Switch defaultChecked />
  5. <br />
  6. <Switch size="small" defaultChecked />
  7. </div>,
  8. mountNode,
  9. );

API

参数说明类型默认值
autoFocus组件自动获取焦点booleanfalse
checked指定当前是否选中booleanfalse
checkedChildren选中时的内容string|ReactNode
defaultChecked初始是否选中booleanfalse
disabled是否禁用booleanfalse
loading加载中的开关booleanfalse
size开关大小,可选值:default smallstringdefault
unCheckedChildren非选中时的内容string|ReactNode
onChange变化时回调函数Function(checked: boolean, event: Event)
onClick点击时回调函数Function(checked: boolean, event: Event)
classNameSwitch 器类名string-

方法

名称描述
blur()移除焦点
focus()获取焦点