在enter-reactjs时防止文本字段换行

在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 {

我想问一下,当我按下enter键后清空文本字段的状态值时,如何防止光标转到下一行。到目前为止,我得到的是当你按enter键时,它会清除文本字段的值,但光标会移到下一行。以下是我得到的:

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) }}
当您单击“回车”时,这两个事件都会运行,请尝试使用控制台日志检查这两个事件,以查看发生了什么以及状态如何变化