Вы можете использовать реагировать state
, чтобы сделать это.В следующем примере условно отключаются флажки, если установлены два. Codesandbox
import React from "react";
import ReactDOM from "react-dom";
import { Checkbox, Row, Col } from "antd";
class CheckBoxed extends React.Component {
constructor(props) {
super(props);
this.state = {
checked: []
};
}
onChange = checkedValues => {
this.setState(() => {
return { checked: checkedValues };
});
};
isDisabled = id => {
return (
this.state.checked.length > 1 && this.state.checked.indexOf(id) === -1
);
};
render() {
return (
<Checkbox.Group style={{ width: "100%" }} onChange={this.onChange}>
<Row>
<Col span={8}>
<Checkbox value="A" disabled={this.isDisabled("A")}>
A
</Checkbox>
</Col>
<Col span={8}>
<Checkbox value="B" disabled={this.isDisabled("B")}>
B
</Checkbox>
</Col>
<Col span={8}>
<Checkbox value="C" disabled={this.isDisabled("C")}>
C
</Checkbox>
</Col>
<Col span={8}>
<Checkbox value="D" disabled={this.isDisabled("D")}>
D
</Checkbox>
</Col>
<Col span={8}>
<Checkbox value="E" disabled={this.isDisabled("E")}>
E
</Checkbox>
</Col>
</Row>
</Checkbox.Group>
);
}
}
ReactDOM.render(<CheckBoxed />, document.getElementById("container"));