Vue TypeError: это не определено - PullRequest
0 голосов
/ 20 января 2020

Почему this здесь не определено? При выходе из системы нажмите эту ошибку, отображаемую в консоли браузера TypeError: this is undefined

<script lang="ts">
import Vue from "vue";
import { getModule } from "vuex-module-decorators";
import Component from "vue-class-component";
import AuthModule from "@/store/auth";
import Store from "@/store";

const authModule = getModule(AuthModule, Store);

@Component({})
export default class App extends Vue {
  mounted() {
    console.log("App mounted");
  }
  onLogoutClick() {
    authModule.logout().then(function() {
      this.$router.push("/login");
    });
  }
 }
</script>

Ответы [ 2 ]

1 голос
/ 20 января 2020

попробуйте это.

 methods: {
   onLogoutClick() {
    let self = this
    authModule.logout().then(function() {
      self.$router.push("/login");
    });
  }
0 голосов
/ 20 января 2020

Использование функции стрелки для анонимной функции решает это. Поскольку функции стрелок связывают это с лексической областью действия this (в данном случае onLogoutClick это).

onLogoutClick() {
authModule.logout().then(() => {
  this.$router.push("/login");
});

}

...