【发布时间】:2015-12-14 23:37:47
【问题描述】:
我正在尝试构建一个正确的反应输入复选框选择所有组件。这个想法是有一个组件<InputCheckboxAll> 和<InputCheckbox>,我可以检查<InputCheckboxAll>,并且所有<InputCheckbox> 也会被选中。
我有两个问题。
- 如果选中
<InputCheckboxAll>,我无法取消选择任何<InputCheckbox>。 - 如果检查了所有
<InputCheckbox>,则应检查<InputCheckboxAll>。
var InputCheckboxAll = React.createClass({
handleChange: function (event) {
this.props.handleChange(event)
},
render: function () {
return (
<input
type='checkbox'
{...this.props}
onChange={this.handleChange} />
)
}
})
var InputCheckbox = React.createClass({
getInitialState: function () {
return {
checked: this.props.checked
}
},
render: function () {
var checkedValue = this.props.allChecked ? true : this.state.checked
return (
<input
checked={checkedValue}
type='checkbox'
{...this.props}/>
)
}
})
var Test = React.createClass({
getInitialState: function () { return {allChecked: false}; },
handleChange: function (event) {
var $elm = $(event.target)
var checked = $elm.prop('checked')
this.setState({
allChecked: checked
})
},
render: function () {
return (
<div>
Select All: <InputCheckboxAll handleChange={this.handleChange}/><br/>
<InputCheckbox allChecked={this.state.allChecked}/><br/>
<InputCheckbox allChecked={this.state.allChecked}/><br/>
<InputCheckbox allChecked={this.state.allChecked}/><br/>
</div>
)
}
})
React.render(<Test/>, document.body)
【问题讨论】:
标签: javascript reactjs