我已在根组件和模块配置中全局禁用“向后滑动”
<ion-nav #appNav [root]="rootPage" swipeBackEnabled="false"></ion-nav>
...
IonicModule.forRoot(MobileApplication, {swipeBackEnabled: false}),
...
但我只需要为一页启用它。因此,我尝试通过将 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());
}
记录 swipeBackEnabled 和 canGoBack 返回 true,但 canSwipeBack 返回 false。如果我在模板中的某处添加滑动事件并在右侧滑动时记录这些值,则会将所有值记录为 true。然而,什么也没发生,似乎向后滑动不起作用?我错过了什么吗?
作为参考,我使用的是 Ionic 3.9.2 和 @ionic/app-scripts 3.1.4。提前致谢
我不完全确定这里的技巧是什么,但以下设置使它对我有用:
public ionViewWillEnter(): void {
this.appNav.swipeBackEnabled = true;
}
public ionViewDidLeave(): void {
this.appNav.swipeBackEnabled = false;
}
这里的 appNav 是 ionic NavController 的一个实例。我还没有完全理解为什么在其他生命周期挂钩中设置 swipeBackEnabled 没有成功,所以我稍后将继续调查。对于可能遇到同样问题的人来说,这可能是一个起点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)