我是Angular和Ionic 4的新手,正在构建一个Ionic应用程序。我有以下情况:
页面内有2个组件。我在组件A中,向前导航到组件B,然后打开一个Modal并更新数据库(SQLite)。
我需要使用数据库中保存的新值来更新组件A的模板。但是,当我单击组件B上的后退按钮(返回到A)时,我无法读取数据库,因为似乎此事件不会触发组件A上的任何事件。
我试图在onDoCheck中读取数据库,但是它进入了循环。
我试图让组件B在单例上写一个值,然后让组件A在onDoCheck中对其进行检查,但是它也不起作用。
我试图在确认模态中调用ApplicationRef.tick()。但这并没有触发A上的任何内容。
我找不到从组件B到组件A捕获“后退事件”的方法。如果找到了,我将尝试在该事件上调用ApplicationRef.tick()...
它猜测这是非常基本的东西,并且我可能缺少一些重要的Angular概念。 有人可以在这里给我一些光线吗?
答案 0 :(得分:0)
您要做的是,使用组件A的AfterViewInit实现非常容易地实现父子组件之间的通信:
export class A implements OnInit, AfterViewInit{
@Input() SharedValue = {}
ngAfterViewInit(): void {
if (this.B) {
this.SharedValue= this.B['sharedValue'];
}
}
}
答案 1 :(得分:0)
离子型生命周期事件将满足您的要求,例如ionViewDidLoad()
,ionViewWillEnter()
,ionViewWillLeave()
,ionViewDidLeave()
,ionViewWillUnload(
)