Vue TypeError:这是未定义的
2020-01-20
2887
为什么这里的
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个回答
尝试一下。
methods: {
onLogoutClick() {
let self = this
authModule.logout().then(function() {
self.$router.push("/login");
});
}
Ömer Doğan
2020-01-20
使用箭头函数来指向匿名函数可以解决这个问题。箭头函数将 this 绑定到词法作用域的
this
(在本例中为
onLogoutClick
的 this)。
onLogoutClick() {
authModule.logout().then(() => {
this.$router.push("/login");
});
}
hdk
2020-01-20