在异步管道重新订阅上重构的角子组件

时间:2019-12-01 15:57:22

标签: angular rxjs

我正在使用'ngFor'指令初始化子组件列表:

父组件:

 <div *ngFor="let item of serviceGetter.items | async; let i = index">
     <child-component [item]="item" [currentIndex]="i"></child-component>
</div>

服务:

@Injectable()
export class TermsService {

   private dataStore: {
     data: any[];
   } = { data: [] };

   get items() {
     return this._data$.asObservable();
   }

   //data are populated inside this method
   someMethod() {
      this.dataStore.data= result;
      this._data$.next(Object.assign({}, this.dataStore).data);
   }

   updateSpecificItem() {
       ....          

      this.dataStore.data[index] = {
         ...somedata,
      };
   }
}

“子组件”更改检测设置为“ OnPush”。 问题是当“ updateSpecificItem()”函数在“索引”位置的子组件被重新初始化(构造函数调用)时。是否有解决方案可以避免这种情况,或者这是公认的行为?

0 个答案:

没有答案
相关问题