Switch 开关

开关选择器。

何时使用#

  • 需要表示开关状态/两种状态之间的切换时;
  • checkbox的区别是,切换 switch 会直接触发状态改变,而 checkbox 一般用于状态标记,需要和提交操作配合。

API#

Switch#

参数 说明 类型 可选值 默认值
checked 指定当前是否选中 boolean false
defaultChecked 初始是否选中 boolean false
onChange 变化时回调函数 Function(checked:boolean)
checkedChildren 选中时的内容 React Node
unCheckedChildren 非选中时的内容 React Node
size 开关大小 string 'default' or 'small' 'default'

代码演示

import { Switch } from 'antd';

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

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

最简单的用法。

import { Switch, Icon } from 'antd';

ReactDOM.render(<div>
  <Switch checkedChildren="开" unCheckedChildren="关" />
  <span> </span>
  <Switch checkedChildren={<Icon type="check" />} unCheckedChildren={<Icon type="cross" />} />
</div>, mountNode);

带有文字和图标。

import { Switch, Button } from 'antd';

const Test = React.createClass({
  getInitialState() {
    return {
      disabled: true
    };
  },
  toggle() {
    this.setState({
      disabled: !this.state.disabled
    });
  },
  render() {
    return (
      <div>
        <Switch disabled={this.state.disabled} />
        <br />
        <br />
        <Button type="primary" onClick={this.toggle}>Toggle disabled</Button>
      </div>
    );
  }
});

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

Switch 失效状态。

import { Switch } from 'antd';

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

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