有时候感觉ionic会发疯,比如今天我就遇到一个很奇葩的error,我一直在其他页面使用NavController或者Nav都未遇到任何问题,偏偏就在我目前新建的这个页面上出现了这样的一个error,No provider for NavController。
在网上寻找了很久的解决方法,尝试过直接使用app.getActiveNav没有成功,尝试过网上说的@ViewChild(‘Nav’) nav:NavController;也没有成功。后来在ionic论坛上找了相关解决方法,地址是:https://forum.ionicframework.com/t/why-cant-i-import-navcontroller-and-viewcontroller-into-service-or-app/40999/50
可以看到相关代码是这样的:
import { App, NavController } from 'ionic-angular';
constructor(
public app: App,
public navCtrl: NavController,
) {}
//此处才是最重要的代码
get navController(): NavController {
return this.app.getRootNav();
}
testNav() {
//这样使用get的navController
this.navController.setRoot(Login);
}