afc163
8 years ago
16 changed files with 115 additions and 34 deletions
@ -0,0 +1,65 @@ |
|||
--- |
|||
order: 4 |
|||
title: |
|||
zh-CN: 全选 |
|||
en-US: Check all |
|||
--- |
|||
|
|||
## zh-CN |
|||
|
|||
在实现全选效果时,你可能会用到 `indeterminate` 属性。 |
|||
|
|||
## en-US |
|||
|
|||
The `indeterminate` property can help you to achieve a 'check all' effect. |
|||
|
|||
````jsx |
|||
import { Checkbox } from 'antd'; |
|||
const CheckboxGroup = Checkbox.Group; |
|||
|
|||
const plainOptions = ['Apple', 'Pear', 'Orange']; |
|||
const defaultCheckedList = ['Apple', 'Orange']; |
|||
|
|||
const App = React.createClass({ |
|||
getInitialState() { |
|||
return { |
|||
checkedList: defaultCheckedList, |
|||
indeterminate: true, |
|||
checkAll: false, |
|||
}; |
|||
}, |
|||
render() { |
|||
return ( |
|||
<div> |
|||
<div style={{ borderBottom: '1px solid #E9E9E9' }}> |
|||
<Checkbox |
|||
indeterminate={this.state.indeterminate} |
|||
onChange={this.onCheckAllChange} |
|||
checked={this.state.checkAll} |
|||
> |
|||
全选 |
|||
</Checkbox> |
|||
</div> |
|||
<br /> |
|||
<CheckboxGroup options={plainOptions} value={this.state.checkedList} onChange={this.onChange} /> |
|||
</div> |
|||
); |
|||
}, |
|||
onChange(checkedList) { |
|||
this.setState({ |
|||
checkedList, |
|||
indeterminate: !!checkedList.length && (checkedList.length < plainOptions.length), |
|||
checkAll: checkedList.length === plainOptions.length, |
|||
}); |
|||
}, |
|||
onCheckAllChange(e) { |
|||
this.setState({ |
|||
checkedList: e.target.checked ? plainOptions : [], |
|||
indeterminate: false, |
|||
checkAll: e.target.checked, |
|||
}); |
|||
}, |
|||
}); |
|||
|
|||
ReactDOM.render(<App />, mountNode); |
|||
```` |
Loading…
Reference in new issue