vue.js - Vue TypeError:这是未定义的
问题描述
为什么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>
解决方案
尝试这个。
methods: {
onLogoutClick() {
let self = this
authModule.logout().then(function() {
self.$router.push("/login");
});
}
推荐阅读
- eclipse - 使用 Maven 在 Spring Boot 中的 data.sql 编码问题
- xamarin.forms - 如何使用渲染器为表单中的条目控件设置透明边框颜色
- wordpress - 无法访问 wordpress 上的内容,总是重定向到页面 http://localhost/dashboard/
- php - 使用 php 的字母搜索框
- google-apps-script - 如何使用谷歌应用脚本通过 API 更新 Streak 框?
- google-cloud-firestore - 未为集合组中的 arrayContains 生成 Firestore 索引 URL?
- android - 通过 chrome://inspect 调试 WebView 时无法单击截屏
- azure-blob-storage - 是否可以在 blob 上读取实际应用的不可变策略 - 剩余的基于时间的保留天数
- xml - 任何现代浏览器真的没有办法在 XML 文件中应用远程 XSLT 样式表引用吗?
- file-upload - 每次在 Load Runner 中上传具有不同名称的相同文件