Javascript 按enter键后清除文本区域

Javascript 按enter键后清除文本区域,javascript,reactjs,Javascript,Reactjs,我想在按下回车键后清除文本区内容。但是,按enter键时,文本区域将清除,但enter键仍保留(新行)。我怎样才能解决这个问题 constructor(){ this.state = { text : '' } } keypress(e){ if(e.key == 'Enter'){ this.setState({ send_message: '' }) } } <textarea value={this.state.tex

我想在按下回车键后清除文本区内容。但是,按enter键时,文本区域将清除,但enter键仍保留(新行)。我怎样才能解决这个问题

constructor(){
    this.state = { text : '' }
}

keypress(e){ 
   if(e.key == 'Enter'){
      this.setState({
        send_message: ''
      })
   }
}

<textarea value={this.state.text} placeholder="Text" rows="1" className="form-textarea typing-area" onKeyPress={this.keypress.bind(this)}></textarea>
constructor(){
this.state={text:'}
}
按键(e){
如果(e.key=='Enter'){
这是我的国家({
发送消息:“”
})
}
}

当键为“回车”时,您可以使用
event.preventDefault

类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
this.state={text:'}
this.handleChange=this.handleChange.bind(this);
this.keypress=this.keypress.bind(this);
}
手变(活动){
this.setState({text:event.target.value});
}
按键(e){
如果(e.key=='Enter'){
e、 预防默认值();
这是我的国家({
发送消息:this.state.text,
文本:“”,
});
}
}
render(){
返回(
{JSON.stringify(this.state,null,2)}
);
}
}
ReactDOM.render(,document.getElementById('app'))

假设此文本区域供用户留下评论。我会将我的文本区域放置在表单元素中,并使用渲染上方定义的
handleSubmit
函数
onSubmit

handleChange=(事件)=>{
this.setState({comment:event.target.value});
};
handleSubmit=(事件)=>{
event.preventDefault();
this.setState({注释:'});
};
render(){
返回(
添加评论
提交评论
);
}
注意,在
handleSubmit
中,我添加了
e.preventDefault()
,因为它是一个表单元素,HTML表单元素的默认行为是提交。然后,我添加了一个
this.setState()
,其中包含一个带有注释属性和空字符串值的对象,以便可以清空文本区域。在您的情况下,可以将其称为
{text:'}

注意,我还有一个带有
{this.handleChange}
onChange
事件处理程序
handleChange
接收此
事件
对象,您的
文本
状态或在我的情况下
注释
状态的新值将来自
event.target.value


在您开发这个组件的过程中,我也会对它进行测试。因此,考虑一个测试,找到文本元素,模拟一个改变事件,提供一个假的事件对象,强制组件更新,然后断言文本区域确实改变了它的值。在这样的测试中,您需要手动设置
事件.target.value
值。

尝试添加
返回false
在按键功能结束时点击。谢谢
handleChange = (event) => {
    this.setState({ comment: event.target.value });
  };
handleSubmit = (event) => {
    event.preventDefault();

    this.setState({ comment: '' });
  };
render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <h4>Add a Comment</h4>
        <textarea onChange={this.handleChange} value={this.state.comment} />
        <div>
          <button>Submit Comment</button>
        </div>
      </form>
    );
  }