2016-08-30 112 views
1

所以我的代碼看起來像這樣:在React上設置默認的ref值?

stockconfirmbuy: function(){ 
    var totalbuyval = this.refs.stockpriceref.innerHTML * this.refs.stockdnum.value;  
    return (<div> 
     <input type="number" value="1" ref="stockdnum" /> 
     <p>Your Total:</p> 
     <p>${totalbuyval}</p>    
</div>); 
}, 

我在這裏的問題是,我得到一個Cannot read property 'value' of undefined錯誤。這是指我的input type="number"

但是,我一直在試圖給我的輸入一個默認值,這樣就不會發生。我給了它一個默認value=1,但這似乎並不滿足參考。

所以我想知道我需要做什麼來設置默認的ref值。或者我應該使用狀態?

回答

2

你絕對應該使用此狀態,設置默認狀態值與getInitialState()兩個stockdnumstockpriceref

然後,可以呈現有價從狀態,例如<input type="number" value={this.state.stockdnum}/>。請注意,除非您設置onChange來更新狀態,否則這將導致輸入爲只讀。 Read more about this here

我懷疑你完全需要refs,事實上,如果可能的話,你應該避免它們。他們多爲提供原料DOM裁判不作出反應,您使用的是他們將有likely be removed in the future反正

1

我一直在努力的API(如jQuery的或TweenLite的或某事)

此外,串裁判

var defaultRef = typeof this.refs.stockdnum.value !== "undefined" ? this.refs.stockdnum.value : defaultValue; 
var totalbuyval = this.refs.stockpriceref.innerHTML * defaultRef; 
:所以,這並 不會發生

你可以做這樣的事情給我輸入一個默認值