TypeError: Объект не является конструктором (оценка «нового PaymentRequest (METHOD_DATA, DETAILS)»)

Я получил ошибку библиотеки react-native-payments-reborn при попытке внедрить Apple Pay.

Я получил ошибку в строке ниже

    const paymentRequest = new PaymentRequest(METHOD_DATA, DETAILS);

Код приведен ниже. Заранее спасибо.

const PaymentRequest = require('react-native-payments-reborn').PaymentRequest;

const METHOD_DATA = [{
    supportedMethods: ['apple-pay'],
    data: {
        merchantIdentifier: 'merchant.apple.test',
        supportedNetworks: ['visa', 'mastercard', 'amex'],
        countryCode: 'US',
        currencyCode: 'USD'
    }
}];

const DETAILS = {
    id: 'basic-example',
    displayItems: [
        {
            label: 'Movie Ticket',
            amount: { currency: 'USD', value: '15.00' }
        },
        {
            label: 'Grocery',
            amount: { currency: 'USD', value: '5.00' }
        }
    ],
    /*shippingOptions: [{
        id: 'economy',
        label: 'Economy Shipping',
        amount: { currency: 'USD', value: '0.00' },
        detail: 'Arrives in 3-5 days' // `detail` is specific to React Native Payments
    }],*/
    total: {
        label: 'Enappd Store',
        amount: { currency: 'USD', value: '20.00' }
    }
};

const OPTIONS = {
    requestPayerName: true,
    requestPayerPhone: true,
    requestPayerEmail: true,
    requestShipping: true
};

export default class ApplePay extends React.Component {

    constructor(props) {
        super(props);
        this.state = {};

        const paymentRequest = new PaymentRequest(METHOD_DATA, DETAILS);

        paymentRequest.addEventListener('shippingaddresschange', e => {
            const updatedDetails = getUpdatedDetailsForShippingAddress(paymentRequest.shippingAddress);

            e.updateWith(updatedDetails);
        });

        paymentRequest.addEventListener('shippingoptionchange', e => {
            const updatedDetails = getUpdatedDetailsForShippingOption(paymentRequest.shippingOption);

            e.updateWith(updatedDetails);
        });
    }

    render() {
       .....
    }
}

PaymentRequest.js

 // Types
import type {
  PaymentMethodData,
  PaymentDetailsInit,
  PaymentOptions,
} from './types';
    
export default class PaymentRequest {

  constructor(
    methodData: Array<PaymentMethodData> = [],
    details?: PaymentDetailsInit = [],
    options?: PaymentOptions = {}) 
  {
       ......
  }

    ......          

}

person adolf smith    schedule 16.12.2020    source источник


Ответы (1)


supportedMethods должно быть 'https://apple.com/apple-pay', а не 'apple-pay'.

person agektmr    schedule 24.12.2020
comment
Спасибо, это ошибка, которую я нашел. Спасибо за помощь. Однако я получил свою ошибку только через 2-3 дня. Спасибо еще раз. - person adolf smith; 29.12.2020