Не удается отправить форму "реакция-бутстрап"

У меня есть следующий компонент react-bootstrap:

        <FormGroup onSubmit={this.gotEmail} role="form">
          <FormControl type="text" className="form-control"/>
          <Button className="btn btn-primary btn-large centerButton" type="submit">Send</Button>
        </FormGroup>

Я бы хотел, чтобы форма была отправлена, когда я нажимаю кнопку "Отправить".

Однако, если я нажму кнопку, управление не достигнет метода this.gotEmail.

Почему это так?

Ответ 1

FormGroup не предоставляет на отправке событие. Вы можете обернуть его элементом form и присоединить к нему обработчик событий:

<form onSubmit={this.gotEmail}>
  <FormGroup role="form">
    <FormControl type="text" className="form-control"/>
    <Button className="btn btn-primary btn-large centerButton" type="submit">Send</Button>
  </FormGroup>
</form>

Ответ 2

Я думаю, что одна вещь отсутствует.

В gotEmail должен быть preventDefault, поэтому, если пользователь нажимает 'enter', страница не перезагружается:

gotEmail(event){ 
  event.preventDefault();
  // code you want to do
}

Ответ 3

Начиная с версии 0.30.2, вы можете обернуть ее в <Form>, которая поддерживает свойство onSubmit:

<Form onSubmit={this.gotEmail}>
  <FormGroup role="form">
  <FormControl type="text" className="form-control"/>
  <Button className="btn btn-primary btn-large centerButton" 
  type="submit">Send</Button>
  </FormGroup>
</Form>

Ответ 4

Я успешно справился с реакцией на использование следующего фрагмента:

<Button onClick={this.onSubmit}>Login</Button>