我按以下方式设置了我的输入组件
constructor(props) {
super(props)
this.state = {text: ''}
}
componentWillReceiveProps(props) {
if(props.value) {
this.setState({text: props.value});
}
}
handleChange(event) {
event.persist();
this.setState({text: event.target.value});
if(typeof(this.props.onChange) === 'function') {
this.props.onChange(event);
}
}
render() {
return (
<input
onChange={ this.handleChange.bind(this) }
value={ this.state.text }
type="text"
placeholder={ this.props.placeholder }
className={ `form-text-input ${this.props.helpers}` }/>
);
}
我通过TextInput
(它的类名)在其他组件中使用它,所以:
//Handle change
handleChange(event) {
this.setState({text: event.target.value})
console.log(this.state.text);
}
<TextInput
helpers="transparent seperator-text"
value={this.state.text}
onChange={this.handleChange.bind(this)} />
现在的问题是,当我输入“Hello, World”时,我的控制台输出只会说“Hello, Worl”,并且每次输入时都缺少最后一个字符。我在更改时提交此文本,但它提交的字符串不完整,这真的很烦人。
如果我只是TextInput
用标准输入替换,请注意没有任何变化