Kullanmakta olduğum sorun, ilk kez metin girdikten sonra Ekle'yi tıklatıp giriş metni kutusu temizleniyor. Yine de metin girmeye başladığımda, giriş metni ilk harften başka bir metin girmeme izin vermeyecektir. Bunu neden yaptığından emin değilim.Tıklama etkinliğinden sonra giriş metnini temizle
var FormTextBox = React.createClass({
handleOnBlur: function (e) {
this.props.onBlur(e.target.value);
},
render: function() {
return (
<input value={this.props.value} key={this.props.fid} type="text" onBlur={this.handleOnBlur} />
)
}
});
var TestFormTextBox = React.createClass({
getInitialState: function (e) {
return {
value: ''
}
},
handleOnAdd: function (e) {
this.setState({ value: '' });
},
handleTextInfo: function (value) {
this.setState({ value: value });
},
render: function() {
return (
<div>
<table>
<tbody>
<tr>
<td>Details</td>
<td></td>
</tr>
<tr>
<td><FormTextBox value={this.state.value} fid={1} onBlur={this.handleTextInfo} /></td>
<td><button onClick={this.handleOnAdd}>Add</button></td>
</tr>
</tbody>
</table>
</div>
)
}
});
defaultValue yöntemi kullanmak yine de var mı? Her karakter vurduktan sonra durumu güncellemek, biraz parlatılmamış hissediyor. Ben sadece, metin kutusundan çıktıktan sonra durumu güncelleyeceği için, onurlunda kullandım. – fes
Endişelenmeyin, React'un oluşturulma şekli bu şekilde yapılır, böylece kullanıcı arabiriminizin durumu her zaman UI modelinizin durumuyla eşleşir ve gerçekten UI değişikliklerinin nasıl tepki verdiğinden dolayı oldukça hızlıdır ! Bu, her değerin değişiminde bir ağ talebi yapılıyor mu? eğer öyleyse bunu daha verimli hale getirmenin başka yolları vardır. –