JMo*_*abs 6 ionic-framework ion-slides angular ionic4
我有一个已经实现了离子幻灯片的 Ionic 4 项目。一切都很好,直到最近对 Ionic 进行了更新(不到一个月前),然后它们突然停止了工作。
在第一次加载时,它们似乎很好,但在之后的任何加载中:
第一次加载工作: 预期的离子载玻片图像
第二次加载没有: 离子载玻片损坏的图像
没有错误消息或警告,以下所有代码在 1 个月前都运行良好,此后没有进行任何更改。它只是随机破裂。
HTML:
<ion-slides #slides pager="true">
<ion-slide *ngFor="let option of options; let i = index">
<ion-card mode="md" [ngStyle]="{'background': borderColors[i]}">
<img style="object-fit: contain; border-radius: 20px; padding: 2px;" [src]="option.imageUrl">
</ion-card>
</ion-slide>
</ion-slides>
Run Code Online (Sandbox Code Playgroud)
TS:
import { Component, Input, ViewChild } from "@angular/core";
import { IonSlides } from "@ionic/angular";
import { ContestOption } from "src/app/models/contest-model";
@Component({
selector: "app-results-swiper",
templateUrl: "./results-swiper.component.html",
styleUrls: ["./results-swiper.component.scss"]
})
export class ResultsSwiperComponent {
@Input() options = [
{ id: "null", imageUrl: "null", votes: 0 },
{ id: "null", imageUrl: "null", votes: 0 }
] as Array<ContestOption>;
@Input() borderColors = [];
@ViewChild("slides", null) slides: IonSlides;
constructor() {}
}
Run Code Online (Sandbox Code Playgroud)
我尝试进一步隔离问题。此 HTML 仍然失败:
<ion-slides #slides pager="true" [options]="slidesOpts">
<ion-slide>
Hello
</ion-slide>
<ion-slide>
Hello Again
</ion-slide>
</ion-slides>
Run Code Online (Sandbox Code Playgroud)
重申一下,关于这个组件的一切都在不久前工作。然后我开始在最近的更新中在我的项目中看到 Ionic CSS 弃用警告。它们看起来像这样:
[DEPRECATED][CSS] Ionic CSS attributes are deprecated.
Replace:
'<div text-center>'
With:
'<div class="ion-text-center">'
Run Code Online (Sandbox Code Playgroud)
自从那次更新后,离子载玻片坏了,决定停止工作。请帮忙!
JMo*_*abs 15
通过更广泛的错误测试,我发现问题不在于 ion-slides,而实际上在于页面加载。我没有提供足够的信息来解决问题。
离子幻灯片以离子模式打开,这导致幻灯片在页面完成加载之前呈现。在我的情况下的解决方案是这样的:
viewEntered = false;ionViewDidEnter() {
this.viewEntered = true;
}
Run Code Online (Sandbox Code Playgroud)
<my-custom-component *ngIf="viewEntered"></my-custom-component>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2339 次 |
| 最近记录: |