首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Angular 2中强制组件重新渲染?

如何在Angular 2中强制组件重新渲染?
EN

Stack Overflow用户
提问于 2016-01-31 02:22:45
回答 4查看 259.3K关注 0票数 204

如何在Angular 2中强制组件重新渲染?为了调试的目的,使用Redux时,我想强制一个组件重新渲染它的视图,这是可能的吗?

EN

回答 4

Stack Overflow用户

发布于 2016-01-31 02:42:29

tx,找到了我需要的解决方法:

代码语言:javascript
复制
  constructor(private zone:NgZone) {
    // enable to for time travel
    this.appStore.subscribe((state) => {
        this.zone.run(() => {
            console.log('enabled time travel');
        });
    });

运行zone.run将强制组件重新呈现

票数 52
EN

Stack Overflow用户

发布于 2018-05-23 00:56:54

ChangeDetectorRef方法

代码语言:javascript
复制
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();
    }

}
票数 39
EN

Stack Overflow用户

发布于 2019-06-11 17:48:34

我使用*ngIf强制重新加载我的组件。

容器中的所有组件都返回到完整的生命周期钩子。

在模板中:

代码语言:javascript
复制
<ng-container *ngIf="_reload">
    components here 
</ng-container>

然后在ts文件中:

代码语言:javascript
复制
public _reload = true;

private reload() {
    setTimeout(() => this._reload = false);
    setTimeout(() => this._reload = true);
}
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35105374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档