【发布时间】:2016-01-10 08:47:46
【问题描述】:
这是我的渲染函数:
render: function() {
return <div className="input-group search-box">
<input
onChange={this.handleTextChange}
type="text"
value={this.state.text}
className="form-control search-item" />
<span className="input-group-btn"></span>
</div>
}
我把它作为我的事件处理程序:
handleTextChange: function(event) {
console.log(event.target.value);
this.setState({
text: event.target.value
});
}
问题是,当我“保存”一个项目或 console.log 打印输出时,最后一个字符丢失了 - 例如,如果我输入“first”,我会打印出“firs”,并且需要有另一个关键事件来捕获最后一个字符。我试过onKeyUp——它不允许我输入任何东西,我也试过onKeyDown和onKeyPress,它什么也不输出。
这里发生了什么,为什么?我怎样才能让最后一个角色出现?
【问题讨论】:
-
看起来几乎和这个例子一模一样:facebook.github.io/react/docs/forms.html - 还有什么可以修改这个范围的吗?
-
您的组件还有哪些其他反应功能?
getInitialState()中有什么内容? -
您是如何保存或
console.loging 的?请记住setState是异步的:stackoverflow.com/questions/32674174/… -
我遇到了同样的问题。我从 event.target.value 设置状态,然后将新状态分配给数据存储。最后一个角色没有进入商店。相反,我将 event.target.value 分配给状态和商店。最后一个字符现在进入数据存储区。
标签: javascript reactjs