Опубликовать запрос, если пользователь закрыл вкладку, Vuejs - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь сделать почтовый запрос, если пользователь пытается закрыть вкладку или изменить маршрут. Но я получаю нулевое значение для одной переменной.

detectTabClose() {
  let newValues = {
    question: this.question_id,
    user_id: this.$userId  //this is global, from root and is ok
  };

  window.addEventListener("beforeunload", function(e) {
    var confirmationMessage = "o/";
    (e || window.event).returnValue = confirmationMessage;

    console.log(this.question_id);  //I get undefined
    axios
      .post("/submit/answer", newValues)
      .then(() => {
        console.log("Post before tab closing");
      })
      .catch(() => {
        console.log("Error on post");
      });

    return confirmationMessage;
  });
},

1 Ответ

1 голос
/ 01 апреля 2020

Причина, по которой вы не можете получить доступ к this.question_id внутри window.addEventListener, заключается в том, что вы не используете функцию стрелки. В вашем случае прямо сейчас ключевое слово this указывает на событие вместо vue instance.

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

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