Почему Redux Form не устанавливает значение для отправки?

Ниже мой RequestAnInvite избыточная форма... Проблема в том, когда я отправляю форму, submitting никогда не меняется на true.. Вы можете видеть, что у меня есть журнал ниже, который всегда выводит false,

Что я делаю неправильно с редукционной формой, чтобы при отправке формы никогда не задавалось значение true? Спасибо

class RequestAnInvite extends React.Component {

  componentDidMount() {
    this.props.dispatch(loadTitles());
  }

  handleSubmit(data) {
    console.log(data);this.props.dispatch(requestInvitationsActions.createInvitationRequest(data));
  }

render() {
  const { handleSubmit, submitting } = this.props;

  console.log('submitting: ' + submitting);

    return (
      <div className="container-fluid h-100">  
        <form onSubmit={handleSubmit(this.handleSubmit.bind(this))}>
          <Field
            name="email"
            type="text"
            component={renderField}
            label="Email"
            placeholder="xxx@acme.com"
          />

        <p>submitting: {submitting}</p>

          <div className="form-group form-group-actions">
            <button type="submit" className="btn btn-primary" disabled={submitting}>
              {submitting ? 'Requesting...' : 'Request an Invite'}
            </button>
          </div>

        </form>
      </div>
    );
  }

}


RequestAnInvite = reduxForm({
  form: 'RequestAnInvite',
  validate,
})(RequestAnInvite);

const mapStateToProps = state => {
  return {
    titles: state.titles
  };
};

const mapDispatchToProps = (dispatch) => bindActionCreators({
  ...requestInvitationsActions,
}, dispatch)

export default connect(mapStateToProps, mapDispatchToProps)(RequestAnInvite);

ОБНОВЛЕНИЕ 1

  handleSubmit(data) {
    this.props.createInvitationRequest(data)
      .then((response) => {
        console.log(response)
      }, (error) => {
    });
  }

1 ответ

Решение

Из документов в редукционной форме:

Независимо от того, подает ли ваша форма в настоящее время. Эта опора будет работать, только если вы передали функцию onSubmit, которая возвращает обещание. Это будет верно, пока обещание не будет решено или отклонено.

Ваш handleSubmit просто отправляет действие, поэтому у него нет возможности узнать, когда оно отправляется

Другие вопросы по тегам