恢复阻止了 React 中的表单提交

Resume prevented form submission in React

我正在用 React 实现 Stripe。

点击提交后,表单提交被阻止,一个 ajax 请求发送到 Stripe - 在响应中给我们一个令牌,应该在后续请求中附加到我们的服务器。

我正在纠结如何implement/trigger向我们的服务器发出后续请求?

下面是从 react-stripe-elements 存储库中获取的此流程的示例:

class _CardForm extends React.Component {
  props: {
    fontSize: string,
    stripe: StripeProps,
  }
  handleSubmit = (ev) => {
    ev.preventDefault();
    this.props.stripe.createToken().then((payload) => console.log(payload));
  }
  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Card details
          <CardElement
            onChange={handleChange}
            onFocus={handleFocus}
            onBlur={handleBlur}
            onReady={handleReady}
            {...createOptions(this.props.fontSize)}
          />
        </label>
        <button>Pay</button>
      </form>
    );
  }
}
const CardForm = injectStripe(_CardForm);

您应该在获得令牌后触发对服务器的调用,即在 this.props.stripe.createToken returns 承诺的 then 子句中。

handleSubmit = (ev) => {
  ev.preventDefault();
  this.props.stripe.createToken()
    .then((payload) => yourFetchImplementation('path/to/api/endpoint', payloadAsBody));
}