本文主要是介绍Uncaught (in promise) TypeError: Cannot read property ‘$confirm‘ of undefined at eval (Login.vue,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
想要用element ui的message box提示用户名不存在,询问用户是否注册,可是控制台报错
methods: {login() {var that=thisthis.$refs.ruleForm.validate((valid) => {if (valid) {// 向后端发起请求,提交数据this.$axios.post('http://localhost:9090/login',{username:this.submitForm.username,password:this.submitForm.password}).then(function (response){console.log(response)if (response.data!=""){console.log(response.data)alert("登陆成功!")that.$router.push({path:'/personal_center'})}else{const confirmRes=that.$confirm("用户名不存在!是否注册?",{confirmButtonText:'注册',confirmButtonText:'再试试登录',type:'warning'}).then((action)=>{if(action === 'confirm'){that.$router.push({path:'/regist'})}}).catch(()=>{this.$message({message:'请重新登录!'})})}})} else {console.log('error submit!!');return false;}});}}
把this. c o n f i r m ( " 用 户 名 不 存 在 ! 是 否 注 册 ? " 改 为 上 图 代 码 中 t h a t . confirm("用户名不存在!是否注册?"改为上图代码中that. confirm("用户名不存在!是否注册?"改为上图代码中that.confirm("用户名不存在!是否注册?"就可以了。
好像是因为.then(function (response)是匿名函数不是箭头函数,this改变指向了。
这篇关于Uncaught (in promise) TypeError: Cannot read property ‘$confirm‘ of undefined at eval (Login.vue的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!