如何强制组件在Angular 2中重新渲染?
为了调试目的使用Redux我想强制组件重新呈现它的视图,是可能吗?
为了调试目的使用Redux我想强制组件重新呈现它的视图,是可能吗?
问候
肖恩
渲染在更改检测后发生。要强制更改检测,以便将更改的组件属性值传播到DOM(然后浏览器将在视图中呈现这些更改),以下是一些选项:
> ApplicationRef.tick() – 类似于Angular 1的$ rootScope。$ digest() – 即检查完整的组件树
> NgZone.run(callback) – 类似于$ rootScope。$ apply(callback) – 即,评估Angular 2区域内的回调函数。我想,但我不知道,这最终在执行回调函数后检查完整的组件树。
> ChangeDetectorRef.detectChanges() – 类似于$ scope。$ digest() – 即,只检查此组件及其子组件
您可以将ApplicationRef,NgZone或ChangeDetectorRef注入到您的组件中。
对于您的特定场景,如果只有一个组件已更改,我建议使用最后一个选项。