Получение переменной из смонтированного в метод - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть смонтированный элемент Stripe, который я загружаю на крюк mount ()

 // Create a Stripe client.
    const stripe = Stripe("secret");

    // Create an instance of Elements.
    const elements = stripe.elements();
    // Create an instance of the card Element.
    const style = {
      base: {
        color: "#32325d",
        fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
        fontSmoothing: "antialiased",
        fontSize: "16px",
        "::placeholder": {
          color: "#aab7c4"
        }
      },
      invalid: {
        color: "#fa755a",
        iconColor: "#fa755a"
      }
    };

    let card = elements.create("card", { style: style });
    // Add an instance of the card Element into the `card-element` <div>.
    card.mount("#card-element");

    // Handle real-time validation errors from the card Element.
    card.addEventListener("change", function(event) {
      var displayError = document.getElementById("card-errors");
      if (event.error) {
        displayError.textContent = event.error.message;
      } else {
        displayError.textContent = "";
      }
    });

Стандартный элемент из документов

Затем я запускаю метод для выполнения платежного намерения и обработки оплата картой

Так что моя проблема в том, что приведенный ниже код, похоже, не знает о экземпляре полосы

 let card = Element;
          if (selectedCard) {
            card = {
              payment_method: selectedCard
            };
          }

          //var stripe = Stripe("secret");
          stripe.handleCardPayment(response.data.data.client_secret, card).then(function(result) {
                console.log(result)
            });

Есть ли способ, чтобы вся страница была в курсе подключенный экземпляр, я попытался добавить их к точкам данных безрезультатно

1 Ответ

0 голосов
/ 03 апреля 2020

Вы должны хранить экземпляр Stripe на самом компоненте Vue, чтобы вы могли получить к нему доступ из других методов этого компонента:

mounted() {
  // Initialize Stripe
  this.stripe = Stripe('secret');

  // Blah blah more Stripe initialization code
},

methods: {
  performPayment() {
    // Now you can access the Stripe instance from this
    this.stripe.handleCardPayment(...)
  }
}
...