【发布时间】:2020-04-18 06:40:45
【问题描述】:
我正在尝试保存卡的详细信息以供以后使用。
我已经生成了 SetupIntent 客户端密码
我正在尝试使用确认卡设置。
我正在关注文档here 进行反应。
下面一行:
const cardElement = this.props.elements.getElement('card')
给我这个错误:
TypeError: Cannot read property 'getElement' of undefined
我哪里错了?我的代码如下: 这是主要组件的相关部分:
import React from "react";
import { Elements, StripeProvider } from "react-stripe-elements";
import SaveCardForm from "./SaveCardForm";
<StripeProvider
apiKey={process.env.REACT_APP_API_STRIPE_PUBLISH}
>
<Elements>
<SaveCardForm/>
</Elements>
</StripeProvider>
这是 SaveCardForm 组件
import React, { Component } from "react";
import { Stripe, CardElement, injectStripe } from "react-stripe-elements";
import axios from "axios";
class SaveCardForm extends Component {
constructor(props) {
super(props);
this.submit = this.submit.bind(this);
}
submit = e => {
e.preventDefault()
const cardElement = this.props.elements.getElement('card');
axios.get(`${process.env.REACT_APP_API}/saveCardDetails`).then(res => {
console.log('res.data', res.data)
this.props.stripe.confirmCardSetup(res.data.client_secret, {
payment_method: {
card: cardElement,
},
}).then( confirmCardSetupRes => {
console.log('confirmCardSetupRes', confirmCardSetupRes)
})
})
}
render() {
return (
<div>
<CardElement />
<button onClick={this.submit}>
Bid For Tickets
</button>
</div>
);
}
}
export default injectStripe(SaveCardForm);
【问题讨论】: