ionic-team / ionic-team/ionic-framework

Ionic router. OnInit working only once

Offen
#17,853 49 Kommentare 9 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
package: angular type: bug
Vorherrschende Sprache
TypeScript
Sterne
52.7k
Forks
13.3k
Ø Merge
1 T. 15 Std.
Gemergte PRs (30 T.)
51

Beschreibung

# Bug Report

**Ionic version:**
[x] **4.1.0**

**Current behavior:**
Ionic router run OnInit only first time

**Expected behavior:**
Run OnInit each time

I have an app with Angular. It is a simple list of items, after clicking on an item opened item details page. Two routes:
- IndexComponent. Items list.
- ItemDetailsComponent. Edit item page

```
const routes: Routes = [
{
path: 'index',
component: IndexComponent
},
{
path: 'item/:id',
component: ItemDetailsComponent
}
];
```

I use ItemsService -> get/save items.

```
export class IndexComponent implements OnInit {
public items: Array;

constructor(private itemsService: ItemsService) {
}

ngOnInit() {
this.itemsService.getItems()
.subscribe(data => this.items = data)
}
}
```

```
export class ItemDetailsComponent implements OnInit {
public item: Item;

constructor(private route: ActivatedRoute,
private itemsService: ItemsService) {
}

ngOnInit() {
const id = this.route.snapshot.params['id'];
this.itemsService.getItem(id)
.subscribe(data => this.item = data)
}
}
```

In Angular application, OnInit lifecycle event working each time when I open these pages.
And it is fine. I should edit an item on ItemDetailsComponent, and after clicking back to IndexComponent I see new information.

I start an Ionic project. Changed `router-outlet` to `ion-router-outlet`
Same structure, same routing.
And now:

- IndexComponent OnInit working the only first time. When I back to this page from ItemDetailsComponent - OnInit not rerun. Ionic reuse IndexComponent, But I need a new instance.

- ItemDetailsComponent OnInit working the only first time for each item in the items list.
But if I edit an item, return back to IndexComponent, update items handly(click a button, because OnInit not work). And open ItemDetailsComponent again - I see old information because OnInit not firing - this is an old instance.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.