在enter-reactjs时防止文本字段换行
我想问一下,当我按下enter键后清空文本字段的状态值时,如何防止光标转到下一行。到目前为止,我得到的是当你按enter键时,它会清除文本字段的值,但光标会移到下一行。以下是我得到的:在enter-reactjs时防止文本字段换行,reactjs,Reactjs,我想问一下,当我按下enter键后清空文本字段的状态值时,如何防止光标转到下一行。到目前为止,我得到的是当你按enter键时,它会清除文本字段的值,但光标会移到下一行。以下是我得到的: import React, { Component } from 'react'; import Textfield from 'react-mdl/lib/Textfield'; import "./style.css"; class ChatMessageBox extends Component {
import React, { Component } from 'react';
import Textfield from 'react-mdl/lib/Textfield';
import "./style.css";
class ChatMessageBox extends Component {
constructor(props){
super(props);
this.state = {
messageBox: ''
};
}
handleMessageBox(event){
if(event.key === "Enter"){
this.setState({
messageBox: ''
});
}
}
handleMessageBoxOnChange(event){
this.setState({
messageBox: event.target.value
});
}
render(){
return (
<div className="chat-message-box">
<Textfield
onKeyPress={(e) => { this.handleMessageBox(e) }}
onChange={ (e) => { this.handleMessageBoxOnChange(e) }}
value={this.state.messageBox}
label="Type a message"
rows={4}
/>
</div>
);
}
}
export default ChatMessageBox;
import React,{Component}来自'React';
从“react mdl/lib/Textfield”导入Textfield;
导入“/style.css”;
类ChatMessageBox扩展组件{
建造师(道具){
超级(道具);
此.state={
消息框:“”
};
}
handleMessageBox(事件){
如果(event.key==“输入”){
这是我的国家({
消息框:“”
});
}
}
handleMessageBoxOnChange(事件){
这是我的国家({
messageBox:event.target.value
});
}
render(){
返回(
{this.handleMessageBox(e)}
onChange={(e)=>{this.handleMessageBoxOnChange(e)}
值={this.state.messageBox}
label=“键入消息”
行={4}
/>
);
}
}
导出默认聊天信息框;
当按下“回车”键时,在文本中添加新行是文本字段的默认行为。如果要覆盖该行为,则必须明确阻止该行为。您可以使用event.preventDefault()
来实现这一点
当按下“Enter”键时,向文本添加新行是文本字段的默认行为。如果要覆盖该行为,则必须明确阻止该行为。您可以使用
event.preventDefault()
来实现这一点
我想你接二连三参加的那两个活动, 您可能只需要使用其中一个,或者尝试正确处理
onKeyPress={(e) => { this.handleMessageBox(e) }}
onChange={ (e) => { this.handleMessageBoxOnChange(e) }}
当您单击“回车”时,两个事件都会运行,请尝试使用控制台日志检查,以查看发生了什么以及状态如何变化。我认为您在另一个事件之后运行的这两个事件, 您可能只需要使用其中一个,或者尝试正确处理
onKeyPress={(e) => { this.handleMessageBox(e) }}
onChange={ (e) => { this.handleMessageBoxOnChange(e) }}
当您单击“回车”时,这两个事件都会运行,请尝试使用控制台日志检查这两个事件,以查看发生了什么以及状态如何变化