我在应用中使用Material-UI的nrows
组件以及相关标签。
我希望复选框和标签都可以单击,但是我不能使用它们的Checkbox
组件(具有FormControlLabel
和control
属性),这将确保单击,因为我想为标签使用其他组件,而不仅仅是文本,而label
似乎不支持它。
因此,我正在考虑在标签组件被点击时触发复选框的点击。有适当的方法吗?
答案 0 :(得分:2)
您可以将Checkbox
用常规的label
包裹起来,以使标签切换复选框。
<label> Label <Checkbox/></label>;
您还可以通过为Checkbox
道具使用状态来控制checked
,并以编程方式进行切换。
const { Checkbox } = window['material-ui'];
class App extends React.Component {
state = { isChecked: false };
toggle = () => {
this.setState(prevState => ({ isChecked: !prevState.isChecked }));
};
render() {
return (
<div>
<Checkbox checked={this.state.isChecked} onChange={this.toggle} />
<button onClick={this.toggle}>Toggle</button>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/@material-ui/core/umd/material-ui.production.min.js"></script>
<div id="root"></div>