2017-03-10 3 views
0

아래 코드를 실행할 때 경고 메시지가 표시됩니다. 어떻게 오류를 제거 할 수 있습니까?React JS 경고

감사합니다.

경고 : 실패 형성하여 PropType : 당신은 onChange 핸들러없이 양식 필드에 value 소품을 제공했다. 이렇게하면 읽기 전용 필드가 렌더링됩니다. 필드가 변경 가능해야하는 경우 defaultValue을 사용하십시오. 그렇지 않으면 onChange 또는 readOnly을 설정하십시오. test의 렌더링 방법을 확인하십시오.

var test = React.createClass({ 

getInitialState : function(){ 
    return { 
     number : 10, 
     checked: [], 
     selected : [] 
    }; 
}, 

componentWillMount : function(){ 

}, 

moreAilment : function(){ 
    var temp = this.state.number + 5; 
    this.setState({number:temp}); 
}, 

handleChangechk: function (e){ 
    const target = e.target; 
    const value = target.type === 'checkbox' ? target.checked : target.value; 
    const name = target.name; 
    var checkedCopy = this.state.checked.slice(); 
    var selectedCopy = this.state.selected.slice(); 

    if(value===true) { 
      checkedCopy[name] = true; 
      selectedCopy [name] = name; } 
    else { 
      checkedCopy[name] = false; 
      selectedCopy [name] = ''; } 

    this.setState({ 
       checked: checkedCopy, 
       selected: selectedCopy }); 
}, 


render : function() { 

    var ailmentsList = []; 
    var selectedList= []; 

    for (var i = 0; i < this.state.number; i++) { 

     ailmentsList.push(<span ><input type="checkbox" checked={!!this.state.checked[i]} onChange={(e)=> {this.handleChangechk(e)}} /><span ></span><label> Asthma {i}</label></span>); 
     if(this.state.selected[i]) 
      { 
       selectedList.push(this.state.selected[i]); 
      } 
    }; 

    return(
      <div className> 
       {selectedList} 
      </div> 
     ); 

    } 
}); 
+0

의 상태를 토글의 만든 간단한 예제는 오류가 제안 무엇을 했나요? – evolutionxbox

+0

예. 나는 여전히 같은 경고를 받는다. –

+0

바이올린을 만들 수 있습니까? – Danish

답변

0

당신은 당신이 당신의 체크 박스 에 defaultChecked 속성을 추가 할 필요가, 기본적으로이

<div> 
    <input type='checkbox' defaultChecked /> 
</div> 

을 시도 할 수 또는 당신이 onchange를 할 수있는 시도 작동하지만 할 것입니다 있는지 확실하지 않습니다 방법

onChange={this.handleChangechk} 

대신 onChange={(e)=> {this.handleChangechk(e)}}

편집 : 체크 박스로 바이올린을 작업하고 버튼 체크 박스 http://jsfiddle.net/yeoman/payugwju/1/

+0

을 사용하여 체크했기 때문에 경고를 통해서는 안됩니다. 나는 이것을 시도했지만 여전히 같은 경고를받습니다. –

+0

당신은 이것을 시도 할 수 있습니까?'defaultChecked = {this.props.checked}' – Danish

+0

여전히 작동하지 않고 덴마크어와 같은 경고를 던집니다. :( –