Prz*_*ski 4 typescript angular
嗨,我有一个问题.在我的组件中,我有一个像这样的输入设置器:
@Input() set editStatus(status: boolean) {
this.savedEditStatus = status;
if (this.savedEditStatus === true && this.getTrigg === true) {
this.getDataFromFlex("SHOWS_L").then((data: any) => {
this.getTrigg = false;
this.lengthDataOptions = data;
})
} else {
this.getTrigg = true;
this.lengthDataOptions = undefined;
}
};
Run Code Online (Sandbox Code Playgroud)
我的问题是我得到两个编辑状态,值为true,他们几乎同时出现.因此,在这种情况下,对于此组件,getDataFromFlex函数将被调用两次.我不想第二次调用所以我认为getTrigg(boolean)将是一个解决方案.它不起作用.所以我需要你们的帮助.getTrigg是默认的组件初始设置为true
我建议您使用ngOnChanges接口与外部组件进行这种通信.这将确保您具有在此值更改后执行所需操作的预期值:
import { Component, OnInit, Input, OnChanges, SimpleChange } from '@angular/core';
@Input() savedEditStatus: boolean; // change to field not getter / setter
ngOnChanges(changes: { [propKey: string]: SimpleChange }) {
if (changes['savedEditStatus'] && changes['savedEditStatus'].currentValue === true &&
this.getTrigg === true) {
this.getDataFromFlex("SHOWS_L").then((data: any) => {
this.getTrigg = false;
this.lengthDataOptions = data;
})
} else {
this.getTrigg = true;
this.lengthDataOptions = undefined;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2778 次 |
| 最近记录: |