gpt4 book ai didi

javascript - 在 ionic 2/3 中获取相同模态的多个实例

转载 作者:行者123 更新时间:2023-11-30 20:38:46 26 4
gpt4 key购买 nike

在我的 app.component 中,我有一个后台模式服务,当通过 intent 共享时,它会向行为主题抛出值

this._notification.setNotiService2(data.extras);

登录后,我将根设置为 TabsPage

this.appCtrl.getRootNav().setRoot('TabsPage');

在选项卡页面上,我已经订阅了行为主题,所以每当我得到一个共享对象时,我都会处理它并打开一个显示所需值的模式。最初,当应用程序打开时,一切正常。但是一旦我们登录/注销,问题就会出现。注销时,我将根页面设置为登录页面。

this.appCtrl.getRootNav().setRoot('LoginPage');

然后在成功登录后再次将 root 设置为 Tabs Page

 this.appCtrl.getRootNav().setRoot('TabsPage');

现在,如果我通过意图共享值,Modal 的多个实例将以完全相同的值打开。我已经检查了行为主题是否为 null/undefined 但订阅的值是 Ok only 。从 TabsPage 内的行为主题记录值,我发现同一个函数(订阅的行为主题)被调用了两次。

同样,如果我注销/登录,模态框会打开 3 次,并且数量会相应地继续增长。

最佳答案

在我看来,您没有记得取消订阅,这意味着每次订阅都会增加。因此,每当您离开页面时,请记住取消订阅(所有)您的订阅。由于您使用的是 Ionic,因此 ionViewWillLeave Hook 将是取消订阅的合适位置...因此在您的页面上声明一个新订阅并...

import { Subscription } from 'rxjs/Subscription';

// ...

mySubscription = new Subscription();

// ...

this.mySubscription = this.myService.mySubject.subscribe(....)

// ...

ionViewWillLeave() {
this.mySubscription.unsubscribe();
}

关于javascript - 在 ionic 2/3 中获取相同模态的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49516131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com