javascript - 控制台向我显示 Angular 7 中的 ExpressionChangedAfterItHasBeenCheckedError

标签 javascript angular error-handling widget expression

使用我的 Angular 项目,我在一个小部件中添加了一个日期范围过滤器(带有起始日期和截止日期),当我的系统启动时过滤器必须具有当前月份的第一天和当前日期,它是工作,但控制台向我显示以下消息。

ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后已更改。以前的值:'fromDate: undefined'。当前值:'fromDate: Mon Jun 01 2020 21:17:17 GMT-0400 (hora estándar de Chile)'。

我的组件模板中的行如下:

 <div class="range-date"  *ngIf = "item?.id === this.widgetEnum.process">
                    <app-range-date [enableInitDate]="true" [(fromDate)]="item.fromDate" [(toDate)]="item.toDate" (dateChange)="changeDateProcess(item)"></app-range-date>
                  </div>

请问你能给我这样的想法吗?

最佳答案

您有两种方式绑定(bind) toDate 和 fromDate。这很好,但是您还有一个输入 (dateChange),我认为它也会影响组件中的 toDate 和 fromDate 变量(不确定没有组件类代码)。你只能做一个或另一个。删除 (dateChange) 或使其成为单向绑定(bind)

<div class="range-date"  *ngIf = "item?.id === this.widgetEnum.process">
                <app-range-date [enableInitDate]="true" [(fromDate)]="item.fromDate" [(toDate)]="item.toDate"></app-range-date>
              </div>

或者
<div class="range-date"  *ngIf = "item?.id === this.widgetEnum.process">
                <app-range-date [enableInitDate]="true" [fromDate]="item.fromDate" [toDate]="item.toDate" (dateChange)="changeDateProcess(item)"></app-range-date>
              </div>

关于javascript - 控制台向我显示 Angular 7 中的 ExpressionChangedAfterItHasBeenCheckedError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62163828/

相关文章:

javascript - 将 props/state 传递给父组件/从父组件传递

javascript - 使用选定的选项作为函数内的参数

html - 动态更改 css 而无需重新加载 Angular2 中的页面

c# - 解释 Angular 2 中 MVC 错误的最佳实践

javascript - 在动态创建的行的末尾附加一个 div

javascript - NG-如果不在 View 中应用

javascript - Angular:在 NgForm 的自定义输入组件中调用 markAsDirty()

javascript - 无法在 init 上使用 angular2-tree 选择树中的所有复选框

javascript - AJAX错误303处理

c# - facebox不是asp.net主页中的功能