成功登录验证后,我需要刷新主页。 在这里,我使用以下代码在成功登录后移至下一页,并使用Firebase作为后端。
this.router.navigate(['home']);
它只是打开主页而没有刷新。 欢迎,如果有人可以给我解决方案。
答案 0 :(得分:0)
您可以使用 BehaviorSubject 。这样,您将可以在任何组件中获取该信息,而无需刷新整个页面/屏幕。
1。)创建服务。例如 data.service.ts
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
@Injectable()
export class DataService {
private messageSource = new BehaviorSubject('');
currentMessage = this.messageSource.asObservable();
constructor() { }
changeMessage(message: string) {
this.messageSource.next(message)
}
}
1.1。)将服务导入 app.module.ts
import { DataService } from './services/data.service';
providers: [
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
...
DataService
],
2。)在登录页面 login.page.ts 上,设置用户名
import { DataService } from '../services/data.service';
let username: string;
constructor(private _dataService: DataService) {...
this._dataService.changeMessage(this.username);
3。)在您的首页 home.page.ts 上,您将访问该信息
import { DataService } from '../services/data.service';
let username: string;
constructor(private _dataService: DataService) {...
this._dataService.currentMessage.subscribe((message) => {
if(message){
this.username = message;
}
});