【发布时间】:2020-05-31 18:30:53
【问题描述】:
我一直在我的 ionic 应用程序中使用事件,我在一个页面中订阅,并在另一页面中发布事件。现在我看到一个警告,事件将随着 Observables 和 Redux 状态和效果而改变。 我主要使用事件来调用它之外的组件功能更改,所以我有一个组件,例如:
Component1.ts
this.events.subscribe('event:addValue1', (data: any) => {
this.valueName = 'VALUE1';
});
this.events.subscribe('event:addValue2', (data: any) => {
this.valueName = 'VALUE2';
});
在这个组件之外,我从任何页面调用发布方法,例如:
Page1.ts
this.events.publish('event:addValue1');
Page2.ts
this.events.publish('event:addValue2');
通过这个,我能够从任何其他页面更改 Component1.ts 之外的数据 (this.valueName),只需发布所需的事件。 我知道这听起来可能不是正确的方法,但这是我从任何页面对其外部的 Component1.ts 进行更改的唯一方法。
我现在已经改变了这一点,只是放置了单独的函数,然后我通过 ViewChild 组件名称来访问它们
@ViewChild('component') component: any;
....
this.component.functionAddValue1().
此外,如果我需要计算并从 Component1.ts 调用某些函数,我会通过 Angular NavigationExtras 发送其他参数,假设我导航到某个路线。 在此之前,我只是调用 events.publish,并且能够即时更改 Component1.ts。
【问题讨论】:
-
你想要 ionic 还是 redux 中的代码?
-
我的应用程序在 Ionic4 中,所以是的。我发现了这个:javascripttuts.com/adding-redux-to-an-ionic-application 我可以使用 redux,或者如果不能,我如何使用 observables 来实现这一点?
-
我添加了一个答案,它的自制服务,我用与事件插件相同的方式获得相同的结果。
标签: ionic-framework redux observable ionic4 redux-observable