Ionic< ion-datetime>不更新视图

a8jjtwal  于 2023-09-28  发布在  Ionic
关注(0)|答案(1)|浏览(167)

我在Ionic 5中使用我的表格。在我保存了一个新的日期之后,当我导航回具有另一个rsv对象的页面时,它仍然显示我刚刚在前一个对象上保存的日期,而不是我选择的对象上的实际日期值。建议。

<ion-label color="medium">
              {{'COMMON.CHECKIN_DATE' | translate }}*
            </ion-label>
            <ion-datetime presentation="date" (ionChange)="callBla()" name="rsv1Begin"
              displayFormat="DDD DD MMM YYYY" placeholder="{{rsv.beginDate | date:'EEE, d MMM, y'}}"
              [(ngModel)]="rsv.beginDate">
            </ion-datetime>

`
在创建新对象之前,选定对象的日期将正确显示。之后,它总是显示我刚刚创建的值。看起来好像组件保留了更改/保存的值,并且在此之后不刷新视图。

vh0rcniy

vh0rcniy1#

嗯,似乎在不同对象之间导航时,先前选择的日期似乎会持续存在。以下是我解决这个问题的方法:

1.刷新或重置rsv对象

导航到新对象或创建新对象时,请确保重置或刷新rsv对象。你可以在生命周期钩子中做到这一点,比如ngOnInitionViewWillEnter

ionViewWillEnter() {
  this.loadRsv();
}

loadRsv() {
  this.rsv = /* logic to load or initialize rsv */;
}

2.考虑使用响应式表单

[(ngModel)]的双向绑定不同,您可以使用表单控件,它提供了更多的控制:

this.form = this.formBuilder.group({
  rsv1Begin: [this.rsv.beginDate]
});

在HTML中:

<ion-datetime formControlName="rsv1Begin" /* other attributes */>
</ion-datetime>

3.调试rsv的生命周期

如果问题仍然存在,请添加控制台日志以跟踪rsv的生命周期。检查它在何时何地被设置、修改或未按预期更新。如果你发现任何有趣的事情,请告诉我并发表评论。

相关问题