Оператор «+» не может применяться к типам - PullRequest
0 голосов
/ 17 ноября 2018

Привет, у меня есть интеграция с PayPal в Angular 5. Я отрисовываю кнопки Paypal с этой функцией

ngAfterViewChecked(): void {
    if (!this.addScript) {
      this.addPaypalScript().then(() => {
        this.abbonamenti.forEach((item, index) => {
          paypal.Button.render(this.payPalConfig +index, '#paypal-checkout-btn' + index);
          this.paypalLoad = false;
        })
        })
      }
  }

это необходимо для загрузки другой кнопки foreach конфигурации PayPal:

    payPalConfig = {
  env: 'sandbox',
    client: {
                sandbox:    'AfOCNI-QeZrhkX2lT5e4xY0S2KTfgoDarEXwk4mkK0ge4EoeW25VN5cg5ZlNRrdJrWUctHWBGGbP4d2V',
                production: 'AUiobQL_EOnmPB4ytmb5ZZHbLZT4hXk7UZgMzGwkd8HFIR6qZ5qJZM3JOb91O4y5frw4197ygPyfbor0'
            },
    commit: true,

            // payment() is called when the button is clicked
            payment: function(data, actions) {

              // Make a call to the REST api to create the payment
                return actions.payment.create({
                    payment: {
                        transactions: [
                            {
                                amount: { total: 40, currency: 'EUR' }
                            }
                        ]

            }
                });
            },
    // onAuthorize() is called when the buyer approves the payment
            onAuthorize: function(data, actions) {

                // Make a call to the REST api to execute the payment
                return actions.payment.execute().then(function() {
                    window.alert('Payment Complete!');
                });
            }
  };

но некоторая конкатенация или индекс тоже не работают.Если я пытаюсь добавить + индекс в имени функции, я получил ошибку в синтаксисе.Я не могу понять.И я очень расстроен.

1 Ответ

0 голосов
/ 17 ноября 2018

Вы не можете применить оператор + к объекту.См. Строку ниже

paypal.Button.render(this.payPalConfig +index, '#paypal-checkout-btn' + index);

Здесь this.payPalConfig в строке выше - object, которая вызывает эту ошибку.

Исправление

Вы должны удалить +и index, просто передайте прямой объект

 paypal.Button.render(this.payPalConfig, '#paypal-checkout-btn' + index);

Редактировать

Конфигурация должна быть как

      payPalConfig = new PayPalConfig(PayPalIntegrationType.ClientSideREST, PayPalEnvironment.Sandbox, {
        commit: true,
        client: {
          sandbox: 'yourSandboxClientId',
        },
        button: {
          label: 'paypal',
        },
        onPaymentComplete: (data, actions) => {
          console.log('OnPaymentComplete');
        },
        onCancel: (data, actions) => {
          console.log('OnCancel');
        },
        onError: (err) => {
          console.log('OnError');
        },
        transactions: [{
          amount: {
            currency: 'USD',
            total: 9
          }
        }]
      });

Ссылка - https://github.com/Enngage/ngx-paypal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...