React-stripe-checkout onToken параметр передачи или состояние доступа - PullRequest
0 голосов
/ 09 ноября 2019

Я использую форму обратной связи для сбора информации о клиенте и карте и получения токена. Пока это прекрасно работает. После того, как всплывающее диалоговое окно завершено, вызывается функция onToken для отправки токена в бэкэнд, проблема в том, что мне нужна другая информация из состояния для отправки в бэкэнд, и я не знаю, как получить доступ к этому

Я не могу получить доступ к this.state

  async onToken(token){
    console.log(this.state) //Error, state undefined
    console.log('Stripe Token: ', token)
    var result = await API.post("videos", "videos/offer/"+this.state.videoid, {
      body: {'price': this.state.pricePerMin, 'token': token}
    });
  }

Функция рендеринга:

StripeCheckout
        stripeKey=""
        name=""
        token={this.onToken}
        label={'Pay ' + this.state.price + '€ and start video analysis'}
        description={this.state.price+'€ (' + this.state.minutesToPay + ' x ' + this.state.pricePerMin + '€)'}
      amount={10 * 100} // cents
      currency="EUR"
      locale="de"
      shippingAddress={false}
      billingAddress={true}
      // Note: enabling both zipCode checks and billing or shipping address will
      // cause zipCheck to be pulled from billing address (set to shipping if none provided).
      zipCode={true}
      alipay={false} // accept Alipay (default false)
      bitcoin={false}  // accept Bitcoins (default false)
      allowRememberMe // "Remember Me" option (default true)
      />

Чтобы сделать вызов API, мне потребуется видеоид из состояния в функции onToken.

1 Ответ

1 голос
/ 09 ноября 2019

Существует два способа решения этой проблемы

Один: изменить

async onToken(token){ 

на

const onToken = async (token) => {

Другой -

token={this.onToken.bind(this)}
...