我遇到的问题是第一次输入文本后,然后单击“添加”并清除了输入文本框。但是,当我再次开始输入文本时,输入的文本将不允许我输入除第一个字母以外的任何文本。我不确定为什么要这么做。
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>
)
}
});
令我惊讶的是,这甚至是第一次。随着控制组件的反应(像那些你与你输入你在哪里设置的值)。您需要在用户更改文本时(使用onChange()事件)更新值。
我在这里用您的原始代码制作了一个JS小提琴,您可以看到甚至无法更新输入中的值。为了更新它,您需要将onBlur事件替换为onChange事件,例如JS小提琴。希望对您有所帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句