1

以下是自述文件中的 react-stripe-elements示例。我可以正确设置条纹表单,但在按下支付按钮时出现以下错误。

Uncaught TypeError: Cannot read property 'props' of undefined
    at handleSubmit (paymentForm.jsx?9f51:10)
    at HTMLUnknownElement.callCallback (react-dom.development.js?cada:540)
    at Object.invokeGuardedCallbackDev (react-dom.development.js?cada:579)
    at Object.invokeGuardedCallback (react-dom.development.js?cada:436)
....

我的 paymentForm.jsx 是这样的:

从“反应”导入反应;从'react-stripe-elements'导入{injectStripe};

从 './paymentCard' 导入 PaymentCard

class PaymentForm extends React.Component {

  handleSubmit(ev) {
    ev.preventDefault();
    this.props.stripe.createToken({name: 'Jenny Rosen'}).then(({token}) => {
      console.log('Received Stripe token:', token);
    });
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <PaymentCard />
        <button>Pay</button>
      </form>
    )
  }

}
export default injectStripe(PaymentForm);
4

1 回答 1

1

好的问题通过将函数绑定到类来解决

  constructor(props) {
    super(props);
    this.handleSubmit = this.handleSubmit.bind(this)
  }
于 2017-12-08T01:09:49.787 回答