ExpressionChangedAfterItHasBeenCheckedError в интеграциях PayPal - PullRequest
0 голосов
/ 10 марта 2020

Я интегрирую PayPal с angular, но он выдаёт эту ошибку ExpressionChangedAfterItHasBeenCheckedError ExpressionChangedAfterItHasBeenCheckedError: Выражение изменилось после его проверки. Предыдущее значение: «config: undefined». Текущее значение: 'config: [object Object]'.

Все работает нормально, но консоль Google показывает это, и я нашел, но не нашел решения для этой ошибки.

Вот код моего компонента

/// component code

export class PaymentsComponent implements OnInit   {
    public spHostUrl;
    @Input() finalAmount: number;
    @Output() saveRenewSubscription: EventEmitter<any> = new EventEmitter<any>();
     @Output() hidePopup: EventEmitter<any> = new EventEmitter<any>();
    @Input() licenseQuantity: number;
    @Input() newExpiryDate: any;
    @Input() subDuration: any;
    @Input() subPrice: any;
    paymentCheck=false;
    @Input() showModel: boolean;
  public payPalConfig?: IPayPalConfig;
  // showModel: boolean;

  ngOnInit(): void {
    this.spHostUrl = GetUrlKeyValue('SPHostUrl');
  }

  ngAfterViewInit():void{
    this.initConfig();
  }


  // openModal(){
  //   this.showModel = true;
  //   this.showDialog = false;
  // }


  private initConfig(): void {
    debugger
    this.payPalConfig = {
    currency: 'USD',
    clientId: 'AWGP2L-qZe_-kZJBEJi_uoUs29NtvzuZZPFzYXxiZfBUdDEYegS_XoCAqsqVr2ra02TbKd9pvLkrT4tB',
    createOrderOnClient: (data) => <ICreateOrderRequest>{
      intent: 'CAPTURE',
      purchase_units: [
        {
          amount: {
            currency_code: 'USD',
            value: this.finalAmount.toString(),
            breakdown: {
              item_total: {
                currency_code: 'USD',
                value: this.finalAmount.toString(),
              }
            }
          },
          items: [
            {
              name: 'Renew - OneDocx for Law Practice (Standard)',
              quantity: this.licenseQuantity.toString(),
              sku: "MyApppStandard" + this.subDuration.toString(),
              description: "Paid "+this.subDuration + " expiring on " + this.newExpiryDate+".",
              unit_amount: {
                currency_code: 'USD',
                value: this.subPrice.toString(),
              },
            }
          ],
          custom_id: this.spHostUrl,
          
        }
      ]
    },
    advanced: {
      commit: 'true'
     
    },
    style: {
      layout:  'vertical',
      label:   'pay',
      size:    'medium',
      
    },
  
    onApprove: (data, actions) => {
      actions.order.get().then(details => {
      });
    },
    

    // On Authorization

    onClientAuthorization: (data) => {
      this.paymentCheck=true
      this.saveRenewSubscription.emit(this.paymentCheck)
      alert("You have renewed subscription successfully")
    },

    // On cancel if user cancel transaction or close the popup

    onCancel: (data, actions) => {
      this.paymentCheck=false
      this.saveRenewSubscription.emit(this.paymentCheck)
    },

    // On error in getting payment through paypal

    onError: err => {
      this.paymentCheck=false
      this.saveRenewSubscription.emit(this.paymentCheck)

    },

    // On paypal button's click

    onClick: (data, actions) => {
      let value;
      this.paymentCheck=false
      // this.hidePopup.emit(value = false)
    },
  };
  }
}
/// Paypal button


<ngx-paypal [config]="payPalConfig" class="text-center" style="width: 20%; float: left;"></ngx-paypal>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...