Angular 角度2-如何在ngOnChange中修改输入B(通过更改输入A触发)

Angular 角度2-如何在ngOnChange中修改输入B(通过更改输入A触发),angular,triggers,onchange,observable,angular2-docheck,Angular,Triggers,Onchange,Observable,Angular2 Docheck,我有一个带有输入和变量的组件: @Input() data: string[]; @Input() val: string = ''; ngOnChanges(changes: SimpleChanges) { for (let propName in changes) { if (propName == 'data') { this.val = 'hello'; } } } 问题是,当数据更改时,我需要更改输入val。但我

我有一个带有输入和变量的组件:

@Input() data: string[];
@Input() val: string = '';

ngOnChanges(changes: SimpleChanges) {
    for (let propName in changes) {
       if (propName == 'data') {
            this.val = 'hello';
       }
    }
}
问题是,当数据更改时,我需要更改输入val。但我有以下错误:

Expression has changed after it was checked. Previous value: 'false'. Current value: 'true'.

谢谢

创建setter更容易

\u数据:字符串[];
@Input()设置数据(val:string[]{
这是._data=val;
this.val='abc'
//this.cdRef.detectChanges();
}
get data(){返回此。\u data;}
@Input()val:string='';
如果仍然出现错误,请添加

构造函数(私有cdRef:ChangeDetectorRef){}

并在上面setter中注释掉的行中进行注释。

谢谢,但我使用了这个.cdRef.detectChanges(),但仍然存在此错误。您将什么值从
false
更改为
true