【问题标题】:Expression has changed after it was checked. Previous value: 'initial'. Current value: 'visible'检查后表达式已更改。以前的值:'初始'。当前值:“可见”
【发布时间】:2018-01-11 02:05:57
【问题描述】:

我正在尝试使用 Angular2-Material.. 我已经安装了 @angular2/material 和 @angular2/cdk 并想使用 SnackBar.. 我已经在 @NgModule 中导入了 MdSnackBarModule 并尝试使用snackBar.open("hello")..

snackbar 显示和文本显示两次:

一次在小吃店,一次在右上角。

我打开了控制台,它向我展示了这一点

MdSnackBarContainer_html:1 :
Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'initial'. Current value: 'visible'.

有人遇到过这种情况吗? 谢谢。

编辑:

从 ngOnInit() 中删除后,该错误不再出现.. 但是小吃店仍然有问题,cdk-visually-hidden 类仍然可见.. 有什么想法吗?

把代码放在这里有问题..因为它在离线网络中.. 不过我会转储主要部分

app.module.ts:

    import {MdSnackBarModule, MdIconModule, OVERLAY_PROVIDERS} from "@angular/material";
    ...
    imports: [... MdSnackBarModule, BrowserAnimationsModule, MdIConModule],
    providers: [ OVERLAY_PROVIDERS ]
    ..

.angular-cli.json:

    ...
    "styles": [
    "bootstrap.css"
    ],
    ..

templates.component.ts:

...
@Component({
..
providers: [...MdSnackBar]
..
})
..

public constructor(public snackBar: MdSnackBar...) 
...

public doSomething() {
    this.snackBar.open("Test test test");
}
...

顺便说一句,当我不使用该动作时,文本甚至不会显示在小吃栏上。

【问题讨论】:

标签: angular typescript angular-material


【解决方案1】:

我通过将snackBar.open 方法移动到组件的构造函数来避免这个错误,而不是在ngOnInit 方法中调用它。

【讨论】:

    猜你喜欢
    • 2021-01-31
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2018-12-12
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    相关资源
    最近更新 更多