官网的组件使用方式(checkbox 全选与单选)组件使用方法
示例代码:
import { Checkbox } from 'antd';
const CheckboxGroup = Checkbox.Group;
const plainOptions = ['Apple', 'Pear', 'Orange'];
const defaultCheckedList = ['Apple', 'Orange'];
class App extends React.Component {
state = {
checkedList: defaultCheckedList,
indeterminate: true,
checkAll: false,
};
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,
});
};
render() {
return (
<div>
<div style={{ borderBottom: '1px solid #E9E9E9' }}>
<Checkbox
indeterminate={this.state.indeterminate}
onChange={this.onCheckAllChange}
checked={this.state.checkAll}
>
Check all
</Checkbox>
</div>
<br />
<CheckboxGroup
options={plainOptions}
value={this.state.checkedList}
onChange={this.onChange}
/>
</div>
);
}
}
ReactDOM.render(<App />, mountNode);
那么如果checkbox的选项数据是后端回传的应该如何处理呢?也就是示例代码中plainOptions与defaultCheckedList的数据是由后端回传的。
并且真实情况plainOptions与defaultCheckedList中的数据不会这么单一,会包含一些html标签。
plainOptions和defaultCheckedList写在state里面,初始化为空数组,然后在didmount里面请求后端的数据setState就行了,defaultCheckedList肯定是单一的key,plainOptions复杂的话自定义渲染就行了