【发布时间】:2016-12-09 15:30:40
【问题描述】:
使用material-ui 0.15.3 和react 15.3.0。
我有一个 Checkbox 组件并想在其 onCheck 函数中使用 this.setState。
很明显,我必须手动将某些内容传递给 Checkbox 的 checked 属性。如果我不这样做,那么我不能使用 setState。如果我尝试这样做,那么复选框的可视组件将不会更新。例如。我单击复选框,它保持为空。 我的第一个问题是为什么?为什么我不能将其保留为不受控制的组件?为什么我必须向 checked 属性传递一些东西?
<Checkbox
label="1"
style={styles.checkbox}
onCheck={this.handleCheck.bind(this)}
checked={this.state.box1} // if this is not supplied then I cannot use setState within handleCheck()
handleCheck():
handleCheck(event, checked) {
this.setState({
box1: checked
someState: someValue
});
}
现在我有多个复选框,所以我的第二个问题是,我该如何构建它以使其尽可能干净?我需要为每个带有单独的 handleCheck() 函数的复选框设置一个单独的状态变量吗?我觉得这很快就会变得一团糟。例如(box1、box2、box3等的状态)
【问题讨论】:
标签: reactjs checkbox material-ui