問題は、初めてテキストを入力した後、[追加]をクリックして入力テキストボックスが消去される問題です。しかし、もう一度テキストを入力すると、入力テキストは最初の文字とは別のテキストを入力することはできません。なぜそれがこれをやっているのか分かりません。クリックイベント後の入力テキストのクリア
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メソッドを使用するためにとにかくはありますか?それぞれのキャラクターがヒットした後に状態を更新することは、いくらか磨かれていないと感じます。私はonBlurを使用して、テキストボックスを終了した後でのみ状態を更新するようにしました。 – fes
これはReactが構築される方法であり、UIの状態が常にあなたのUIモデルの状態と厳密に一致し、反応がUIの変更をどのように処理するかによって実際はかなり速くなるように行われます!それはあなたが 'value 'のすべての変更に対してネットワーク要求をしていると言われていますか?そうであれば、それをより効率的にするための他の方法があります。 –