为什么Redux Form没有设置提交的值?

AnA*_*ice 1 reactjs redux-form react-redux react-redux-form

下面是我的RequestAnInviteredux-form ...问题是当我提交表单时,submitting从未更改为true..你可以看到我有一个下面的日志,它总是输出false.

当我提交表单时,我做错了什么,以及使提交从未设置为真的还原形式?谢谢

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);
Run Code Online (Sandbox Code Playgroud)

更新1

  handleSubmit(data) {
    this.props.createInvitationRequest(data)
      .then((response) => {
        console.log(response)
      }, (error) => {
    });
  }
Run Code Online (Sandbox Code Playgroud)

Ant*_*ony 7

来自redux-form docs:

您的表单目前是否正在提交.只有在您传递了一个返回promise的onSubmit函数时,此prop才有效.在承诺得到解决或拒绝之前都是如此.

handleSubmit只是发送一个动作,因此它无法知道它何时提交

  • @AnApprentice,如果您执行`return this.props.createInvitation ...`应该可以 (2认同)