我从警报中取消导航。这是我的代码:
app.component:
const prompt = await this.alertCtrl.create({
header: MessageConstants.infoNewTaskTitle,
message: MessageConstants.infoNewTasksGeneric,
buttons: [
{
text: 'Abbrechen',
role: 'cancel'
},
{
text: 'Ja',
handler: () => {
prompt.dismiss({ navigation: true });
}
}
]
});
await prompt.present();
prompt.onDidDismiss().then(() => {
this.navCtrl.navigateRoot("/communication/segment", { state: { page: "myValue" } });
});
app.module
{
path: 'communication',
loadChildren: () => import('./pages/communication/communication.page.module').then(m =>
m.CommunicationPageModule)
}
communication.module
{
path: 'segment',
component: CommunicationPage,
children: [
{
path: '',
component: CommunicationPage
}
]
}
angular.json
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
}
]
},
以某种方式取消导航:
我已经绑结了以下情况:
我菜单中的一个简单的navigationRoot导航正在运行。已经从这些路径中删除了所有警卫。如果我为导航添加setTimeout延迟,那么它会起作用,所以我认为应许有所作为。加载应用程序后,第一个调用以某种方式起作用。同样奇怪的是,这仅在生产版本中发生。
我正在使用角度8和离子4。