TypeError: Невозможно прочитать свойство 'list' из undefined of balanceTransactions - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь отобразить баланс из учетной записи клиента Stripe или Connect, но получаю сообщение об ошибке TypeError: Cannot read property 'list' of undefined. У пользователя есть только один заряд на его счете, и он все еще выдает ошибку, что это не определено.

Я, вероятно, просто неправильно понимаю API, но я не могу найти никаких примеров, когда пытаюсь это сделать. Как мне просто отобразить все транзакции баланса для данного клиента?

Код:

import React, { Component } from 'react'
import { injectStripe } from 'react-stripe-elements';

class Balance extends Component {

    componentDidMount(){
        if (this.props.stripe) {
            this.props.stripe.balanceTransactions.list({ limit: 3 }, function(error, transactions) {
                if(error){
                    console.error(error)
                } else {
                    console.log(transactions)
                }

            });
        }
    }

    render() {
        return (
            <div>
                Display Balance here
            </div>
        )
    }
}

export default injectStripe(Balance);

Ответы [ 2 ]

2 голосов
/ 01 июля 2019

Цитата из readme о реагирующих элементах:

Внутри внедренного компонента вы можете вызвать любое из следующего:

this.props.stripe.createPaymentMethod
this.props.stripe.createToken
this.props.stripe.createSource
this.props.stripe.handleCardPayment

То есть вы используете не ту библиотеку.

Правильная библиотека: Стрип-узел

1 голос
/ 01 июля 2019

Чтобы устранить ошибку, необходимо выполнить проверку в stripe.balanceTransactions.

componentDidMount(){
    if (this.props.stripe && this.props.stripe.balanceTransactions) {
        this.props.stripe.balanceTransactions.list({ limit: 3 }, function(error, transactions) {
            if(error){
                console.error(error)
            } else {
                console.log(transactions)
            }

        });
    }
}

А также, если вы посмотрите в документацию , injectStripe не даст stripe.balanceTransactions проп.

Это единственные методы, которые вы можете вызвать

  • this.props.stripe.createPaymentMethod
  • this.props.stripe.createToken
  • this.props.stripe.createSource
  • this.props.stripe.handleCardPayment
...