2016-02-05 17 views
5

Như trong tiêu đề câu hỏi, tôi không thể để đánh dấu vào hộp kiểm như chọn, trên onChange sự kiện của selectbox như thế này,ReactJS khi sử dụng kiểm tra thuộc tính HTML, reactjs không cho phép để chọn hộp kiểm

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

là như handleChange giống như:

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

khi nó được liên kết với defaultValue,

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

  1. Hộp chọn không thể đánh dấu được điều kiện đã cho, nhưng thủ công có thể đánh dấu chọn đã kiểm tra/không được chọn.

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

  1. On này kiểm tra thuộc tính, hộp kiểm có thể đánh dấu như kiểm tra, dựa trên một số giá trị tùy chọn hộp. NHƯNG trong trường hợp này, cách kiểm tra thủ công hoặc không kiểm tra sẽ không xảy ra.

Hy vọng bạn guys có vấn đề của tôi

Đây là JSFiddle

tôi muốn hộp kiểm để hoạt động cả hai cách, trên một số các tùy chọn, hộp kiểm cần được kiểm tra. Và cũng có thể sử dụng có thể kiểm tra/Bỏ chọn hộp kiểm manully

Trả lời

1

React Docs says:

setstate() không ngay lập tức đột biến this.state nhưng tạo ra một chuyển trạng thái chờ giải quyết. Truy cập this.state sau khi gọi phương thức này có khả năng trả về giá trị hiện tại.

Không đảm bảo hoạt động đồng bộ của các cuộc gọi đến setState và các cuộc gọi có thể được thực hiện theo đợt để đạt được hiệu suất.

Các vấn đề liên quan