Ionic 3可以向单页滑动

vit*_*lym 7 ionic-framework ionic2 angular

我已经在根组件和模块配置中全局禁用了"向后滑动"

<ion-nav #appNav [root]="rootPage" swipeBackEnabled="false"></ion-nav>

...
IonicModule.forRoot(MobileApplication, {swipeBackEnabled: false}),
...
Run Code Online (Sandbox Code Playgroud)

我需要只为一页启用它.所以试图通过将nav实例传递给构造函数然后将swipeBackEnabled设置为true来设置它.

ionViewWillEnter() {
    this.nav.swipeBackEnabled = true;
    console.log('swipeBackEnabled ' + this.nav.swipeBackEnabled);
    console.log('canGoBack ' + this.nav.canGoBack());
    console.log('canSwipeBack ' + this.nav.canSwipeBack());
}
Run Code Online (Sandbox Code Playgroud)

记录swipeBackEnabled并且canGoBack返回true,但canSwipeBack返回false.如果我在模板中的某处添加滑动事件并在右侧滑动时记录这些值,则会将所有值记录为true.然而,没有任何反应,似乎刷回来不起作用?我错过了什么吗?

作为参考,我使用的是Ionic 3.9.2和@ ionic/app-scripts 3.1.4.提前致谢

vit*_*lym 4

我不完全确定这里的技巧是什么,但以下设置使它对我有用:

public ionViewWillEnter(): void {
    this.appNav.swipeBackEnabled = true;
}

public ionViewDidLeave(): void {
    this.appNav.swipeBackEnabled = false;
}
Run Code Online (Sandbox Code Playgroud)

这里的 appNav 是 ionic NavController 的一个实例。我还没有完全理解为什么在其他生命周期挂钩中设置 swipeBackEnabled 没有成功,所以我稍后将继续调查。对于可能遇到同样问题的人来说,这可能是一个起点。