如何在Angular 2中强制组件重新渲染?为了调试的目的,使用Redux时,我想强制一个组件重新渲染它的视图,这是可能的吗?
发布于 2016-01-31 02:42:29
tx,找到了我需要的解决方法:
constructor(private zone:NgZone) {
// enable to for time travel
this.appStore.subscribe((state) => {
this.zone.run(() => {
console.log('enabled time travel');
});
});
运行zone.run将强制组件重新呈现
发布于 2018-05-23 00:56:54
ChangeDetectorRef方法
import { Component, OnInit, ChangeDetectorRef } from '@angular/core';
export class MyComponent {
constructor(private cdr: ChangeDetectorRef) { }
selected(item: any) {
if (item == 'Department')
this.isDepartment = true;
else
this.isDepartment = false;
this.cdr.detectChanges();
}
}
发布于 2019-06-11 17:48:34
我使用*ngIf强制重新加载我的组件。
容器中的所有组件都返回到完整的生命周期钩子。
在模板中:
<ng-container *ngIf="_reload">
components here
</ng-container>
然后在ts文件中:
public _reload = true;
private reload() {
setTimeout(() => this._reload = false);
setTimeout(() => this._reload = true);
}
https://stackoverflow.com/questions/35105374
复制相似问题