onsen ui + angular2 pushPage is already runningの解決
6215 ワード
問題
- 初期表示のタイミングで、
ngOnInit
に更に次のページへ遷移させる( resetToPage
)記述をした。
-
Uncaught (in promise) pushPage is already running
が発生した
問題コード
@Component({
selector: "ons-page",
template: require("./main.html"),
styles: [require("./main.css")],
})
export class Main {
constructor(private _navigator: OnsNavigator) {
}
ngOnInit() {
if (isLogin()) {
this._navigator.element.resetToPage(nextPage);
return;
}
}
}
調査
- 色々調べたけど、なんか良い解決方法がない。
解決
@Component({
selector: "ons-page",
template: require("./main.html"),
styles: [require("./main.css")],
})
export class Main {
constructor(private _navigator: OnsNavigator) {
}
ngOnInit() {
if (isLogin()) {
this.throughPage();
return;
}
}
private throughPage() {
if(ons.isReady()) {
this.goToNextPage();
return;
}
ons.ready(() => this.goToNextPage());
};
private goToNextPage() {
this._navigator.element.resetToPage(nextPage)
.catch((reason) => {
// pushPage is already running. の状態の時にリトライさせる
this.goToNextPage();
});
}
}
参考
- https://ja.onsen.io/v1/reference/ons.html
-
https://ja.onsen.io/v2/guide/faq.html <- ここに解決が書いてあったんだけど、見つけるのにものすごく時間かかった
感想
ngOnInit
に更に次のページへ遷移させる( resetToPage
)記述をした。Uncaught (in promise) pushPage is already running
が発生した@Component({
selector: "ons-page",
template: require("./main.html"),
styles: [require("./main.css")],
})
export class Main {
constructor(private _navigator: OnsNavigator) {
}
ngOnInit() {
if (isLogin()) {
this._navigator.element.resetToPage(nextPage);
return;
}
}
}
調査
- 色々調べたけど、なんか良い解決方法がない。
解決
@Component({
selector: "ons-page",
template: require("./main.html"),
styles: [require("./main.css")],
})
export class Main {
constructor(private _navigator: OnsNavigator) {
}
ngOnInit() {
if (isLogin()) {
this.throughPage();
return;
}
}
private throughPage() {
if(ons.isReady()) {
this.goToNextPage();
return;
}
ons.ready(() => this.goToNextPage());
};
private goToNextPage() {
this._navigator.element.resetToPage(nextPage)
.catch((reason) => {
// pushPage is already running. の状態の時にリトライさせる
this.goToNextPage();
});
}
}
参考
- https://ja.onsen.io/v1/reference/ons.html
-
https://ja.onsen.io/v2/guide/faq.html <- ここに解決が書いてあったんだけど、見つけるのにものすごく時間かかった
感想
@Component({
selector: "ons-page",
template: require("./main.html"),
styles: [require("./main.css")],
})
export class Main {
constructor(private _navigator: OnsNavigator) {
}
ngOnInit() {
if (isLogin()) {
this.throughPage();
return;
}
}
private throughPage() {
if(ons.isReady()) {
this.goToNextPage();
return;
}
ons.ready(() => this.goToNextPage());
};
private goToNextPage() {
this._navigator.element.resetToPage(nextPage)
.catch((reason) => {
// pushPage is already running. の状態の時にリトライさせる
this.goToNextPage();
});
}
}
参考
- https://ja.onsen.io/v1/reference/ons.html
-
https://ja.onsen.io/v2/guide/faq.html <- ここに解決が書いてあったんだけど、見つけるのにものすごく時間かかった
感想
- Promise
すげえええ。
- リファレンスわかりづらいというか、onsen ui 辛い
Author And Source
この問題について(onsen ui + angular2 pushPage is already runningの解決), 我々は、より多くの情報をここで見つけました https://qiita.com/taka10257/items/eef3728c8251bb8cc00d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .