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

时间:2016-02-05 19:51:53

标签: javascript checkbox reactjs

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

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

就像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)
        },

当它绑定到defaultValue时,

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

  1. 选择框无法标记给定的条件,但可以手动标记已选中/未选中。
  2. checked={(this.state.typeSelected =='locker')}

    1. 在此选中的属性上,复选框可以根据选择框选项值标记为已选中。但在这种情况下,手动检查或方式 未经检查没有发生。
    2. 希望你们有我的问题

      以下是JSFiddle

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

1 个答案:

答案 0 :(得分:1)

React Docs says

  

setState()不会立即改变this.state但会创建一个   待定状态转换。调用后访问this.state   方法可以返回现有值。

     

无法保证对setState的调用同步操作   并且可以批量调用以获得性能提升。