Switch开关

开关选择器。

何时使用#

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

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

代码演示

最简单的用法。

expand codeexpand code
import { Switch } from 'antd';

function onChange(checked) {
  console.log(`switch to ${checked}`);
}

ReactDOM.render(<Switch defaultChecked onChange={onChange} />, mountNode);


带有文字和图标。

expand codeexpand code
import { Switch, Icon } from 'antd';

ReactDOM.render(
  <div>
    <Switch checkedChildren="" unCheckedChildren="" defaultChecked />
    <br />
    <Switch checkedChildren="1" unCheckedChildren="0" />
    <br />
    <Switch
      checkedChildren={<Icon type="check" />}
      unCheckedChildren={<Icon type="close" />}
      defaultChecked
    />
  </div>,
  mountNode,
);

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

expand codeexpand code
import { Switch } from 'antd';

ReactDOM.render(
  <div>
    <Switch loading defaultChecked />
    <br />
    <Switch size="small" loading />
  </div>,
  mountNode,
);

Switch 失效状态。

expand codeexpand code
import { Switch, Button } from 'antd';

class App extends React.Component {
  state = {
    disabled: true,
  };

  toggle = () => {
    this.setState({
      disabled: !this.state.disabled,
    });
  };

  render() {
    return (
      <div>
        <Switch disabled={this.state.disabled} defaultChecked />
        <br />
        <Button type="primary" onClick={this.toggle}>
          Toggle disabled
        </Button>
      </div>
    );
  }
}

ReactDOM.render(<App />, mountNode);

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

expand codeexpand code
import { Switch } from 'antd';

ReactDOM.render(
  <div>
    <Switch defaultChecked />
    <br />
    <Switch size="small" defaultChecked />
  </div>,
  mountNode,
);

API#

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

方法#

名称描述版本
blur()移除焦点
focus()获取焦点
Radio单选框Slider滑动输入条