2016-08-30 134 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; 
:所以,这并 不会发生

你可以做这样的事情给我输入一个默认值