2017-06-08 48 views
0

我是新的反應。在教程之後,他們在哪裏介紹狀態以找出是否複選框被選中。但我想這樣做,在這種風格:如何從函數中傳遞變量來呈現函數中的反應

<script type="text/babel"> 
    var Checkbox = React.createClass({ 
    change: function(){ 
     var msg; 
     var val= document.getElementById('check').checked; 
     if(val==true){ 
     msg = 'checked'; 
     }else{ 
     msg = 'Not checked'; 
     } 
    }, 
    render: function(){ 
     return(<div> 
      <input onChange={this.change} id="check" type="Checkbox" /> 
      <p>Checkbox is {this.msg}.</p> 
     </div>); 
    } 
    }); 
    ReactDOM.render(<Checkbox/>, document.getElementById('container')); 
</script> 

所以,問題是我不能傳遞變量「味精」到渲染功能。

+0

爲什麼不使用狀態變量?如果你不使用state和setState,那麼你的組件不會被重新渲染,並且msg部分不會在ui中更新。 –

+0

你應該在'state'上用'setState'函數設置它。另外,'createClass'已經被棄用了。 – enapupe

+0

感謝您的建議.. –

回答

0

如果要在UI中呈現消息,則應使用setState函數將msg設置爲狀態,以便重新呈現可能發生。

對於不需要重新渲染的任何其他情況,可以在構造函數中將變量創建爲類變量並在任何函數中使用。

constructor(props){ 
super(props); 
this.myVariable=''; 
}