ReactJS在使用HTML属性检查时,reactjs不允许选中复选框

RON*_*ONE 5 javascript checkbox reactjs

在问题标题中,我无法将复选框标记为已选中,如此选择框的onChange事件,

<select id='featuresType'
onChange={this.handleChange.bind(this, 'type')} >
 {this.getOptions(featuresType)}
 </select>
Run Code Online (Sandbox Code Playgroud)

像handleChange一样:

 handleChange: function (field, e) { 
            if (field == 'type') {
                let selected = e.target.value;
                this.setState({typeSelected: selected})
            }
            /*Why the console is taking the previous selecte option, ex: if Locker is selectec below lone prints 'dc' */
             console.log(field ,',',  this.state.typeSelected)
        },
Run Code Online (Sandbox Code Playgroud)

当它绑定到defaultValue时,

defaultChecked={(this.state.typeSelected =='locker')}

  1. 选择框无法标记给定的条件,但手动可以标记选中/未选中.

checked={(this.state.typeSelected =='locker')}

  1. 在此选中的属性上,复选框可以根据选择框选项值标记为已选中.但在这种情况下,不会发生手动检查或取消检查的方式.

希望你们有我的问题

这是JSFiddle

我希望复选框可以双向操作,在选择选项时,应选中复选框.此外,用户还可以选中/取消选中Manully复选框

lub*_*nac 1

React 文档说

setState() 不会立即改变 this.state ,而是创建一个挂起的状态转换。调用此方法后访问 this.state 可能会返回现有值。

无法保证 setState 调用的同步操作,并且可以对调用进行批处理以提高性能。