Vue.js 无法读取属性'$路由器&x27;未定义的

Vue.js 无法读取属性'$路由器&x27;未定义的,vue.js,fetch,vue-router,Vue.js,Fetch,Vue Router,我对给定的代码有异议 submit(){ 获取(this.url+“/auth/login”{ 方法:“POST”, 标题:{ “接受”:“应用程序/json”, “内容类型”:“应用程序/json” }, 正文:JSON.stringify({ mobilenumber:this.form.mobilenumber, 密码:this.form.password}) }).然后(功能(响应){ console.log(“Response=“+Response.status”); 如果(respo

我对给定的代码有异议

submit(){
获取(this.url+“/auth/login”{
方法:“POST”,
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”
},
正文:JSON.stringify({
mobilenumber:this.form.mobilenumber,
密码:this.form.password})
}).然后(功能(响应){
console.log(“Response=“+Response.status”);
如果(response.status==200){
这是$router.push({
名称:“用户”,
})
}否则{
警报(“未登录”);
}
返回response.json();
}).then(功能(数据){
}).catch(函数(错误){
console.log(“-----error------”+error);
});
}
调用submit函数时,我希望导航到用户页面。我已经为此编写了
this.$router.push({name:“Users”})
。但我在控制台中遇到错误:

Cannot read property '$router' of undefined.

我尝试了
self.$router.push({name:“Users”})
。我仍然在控制台中遇到同样的错误。请提供帮助。

您需要外部作用域的引用,因为在获取回调
中,此
未定义。要解决此问题,您可以通过将引用创建为来创建外部范围的引用

submit(){
让自我=这个;
...
然后,您可以将引用用作

self.$router.push({
名称:“用户”,
})

这是否回答了您的问题?谢谢,在我再次执行
npm运行服务后,它起到了作用。