【发布时间】:2017-05-09 08:15:45
【问题描述】:
我有一个带有各种表单元素的大型表单,这些表单元素是从 get 请求中动态呈现的。所有其他类型的表单(例如文本和选择)都可以正常工作,但复选框却不行。
在我检查一次后,它只会保持打开状态(即使我取消选中它),我是否在这里遗漏了什么或做错了什么?
这是我目前的相关代码:
class Input extends Component{
render(){
var form;
if (this.props.componentClass=="choice") {
// select form
}
else if (this.props.componentClass=="bool")
form =(<Checkbox id={this.props.controlId} onChange={this.props.onChange}
defaultChecked={this.props.placeholder} >
</Checkbox>);
else
// text form
return (
<div>
<Form inline onSubmit={this.handleSubmit}>
<FormGroup controlId={this.props.controlId}>
<ControlLabel>{this.props.name}</ControlLabel>
{form}
<Panel>
{this.props.description}
</Panel>
<FormControl.Feedback />
</FormGroup>
</Form>
<br/>
</div>
);
}
}
// onChange code (comes from a parent component)
onChange(e){
const form = Object.assign({}, this.state.form);
form[e.target.id] = e.target.value;
this.setState({ form });
console.log('current state: ', this.state);
}
【问题讨论】:
标签: javascript forms reactjs checkbox react-bootstrap