Html 在文本区域按enter键时对论坛提交作出反应

Html 在文本区域按enter键时对论坛提交作出反应,html,reactjs,Html,Reactjs,A我正在制作这个论坛类型的应用程序,要创建一个帖子,你需要通过一个带有文本区域的表单;我想支持降价。因此,要做到这一点,您需要支持新品功能。当我按enter键时,会出现以下错误: 这是密码 export default class CreatePost extends Component { state = { redirect: false, Title: '', Author: '', Body: '', }; updateState = e =

A我正在制作这个论坛类型的应用程序,要创建一个帖子,你需要通过一个带有文本区域的表单;我想支持降价。因此,要做到这一点,您需要支持新品功能。当我按enter键时,会出现以下错误:

这是密码

export default class CreatePost extends Component {
  state = {
    redirect: false,
    Title: '',
    Author: '',
    Body: '',
  };

  updateState = e => {
    this.setState({ [e.target.name]: e.target.value });
  };

  createPost = e => {
    e.preventDefault();
    if (this.state.Body !== '') {
      this.props.createPost(this.state);
    }

    this.setState({ Title: '', Author: '', Body: '', redirect: true });
  };

  onEnterPress = e => {
    if (e.keyCode === 13) {
      e.preventDefault();
    }
  };

  render() {
    if (this.state.redirect) {
      return <Redirect push to='/' />;
    }
    return (
      <div className='createPost'>
        <h1>Create Your Post!</h1>
        <form onSubmit={this.createPost}>
          <label className='input'>
            Title:{' '}
            <input
              type='text'
              name='Title'
              value={this.state.Title}
              onChange={this.updateState}
              required
            />
          </label>
          <label className='input'>
            Author:{' '}
            <input
              type='text'
              name='Author'
              value={this.state.Author}
              onChange={this.updateState}
              required
            />
          </label>
          <textarea
            name='Body'
            className='body'
            value={this.state.Body}
            onKeyDown={this.onEnterPress}
            onChange={this.updateState}
          ></textarea>
          <input type='submit' value='Submit' className='submitBTN' />
        </form>
        <Link className='home' to='/'>
          Go Home
        </Link>
      </div>
    );
  }
}
我试过常规的按下功能,但不起作用

更新1
我让它工作了,但我仍然得到了错误。

您需要将onEnterPress移动到表单本身,因为表单也会侦听按键

<form onSubmit={this.createPost} onKeyDown={onEnterPress}>

这是一个。

对不起,没用。同样的错误。不管怎样,谢谢你的帮助。那肯定管用,我加了一把小提琴。那一定是出了什么问题。这在我的代码中不起作用。你的小提琴也不管用。我得到了e.keyCode===Enter使其工作,但仍然出现错误。您使用的是什么浏览器我使用的是Edge chromium浏览器