问)任何人都知道Ionic 2中的Loading组件是否破损或我是愚蠢的?
我正在尝试使用Ionic 2中的Loading组件,如下所示:
let loading = Loading.create({
content: 'Loading: ',
duration: 3000
});
nav.present(loading);
即使他们被解雇了,但他们有时会出现翻倍(即屏幕上有2个叠加,背景太深)并且他们不会被解雇。
这对我来说似乎有些不妥。
我试过保留一个全局变量并解雇每个变量:
showLoading(nav: NavController) {
if(!window.loadingOverlays) {
window.loadingOverlays = [];
}
// only ever show one instance of the overlay.
if(window.loadingOverlays && window.loadingOverlays.length > 0) {
return;
}
let loading = Loading.create({
content: 'Loading...'
});
nav.present(loading);
window.loadingOverlays.push(loading);
}
hideLoading() {
if(!window.loadingOverlays || window.loadingOverlays.length == 0) {
return;
}
window.loadingOverlays.forEach((overlay) => {
overlay.dismiss();
});
window.loadingOverlays = [];
}
并添加并手动解除它们,但这没有效果。
答案 0 :(得分:5)
我刚遇到了像你这样的问题,我通过将dismiss()
之后的代码放在.then()
函数返回的承诺的dismiss()
中来解决它。
例如:overlay.dismiss().then(() => { /* PUT YOUR CODE HERE */ })