4

在我正在构建的 Angular 5 应用程序中,我有一个侧边菜单和主内容菜单。

左侧的两个菜单项加载具有不同路线数据的相同组件。

默认情况下,Angular 使用相同的组件实例来渲染两者。因此,ngOnInit()只会被调用一次(一个实例)。

要呈现的组件包含一个子组件(更改检测设置为OnPush)。子组件以@Input()的形式接收数据

单击第一个菜单项时,数据将正确呈现。单击第二个菜单项时,旧数据仍在显示,一旦新数据从服务器到达,它就会被渲染。

提到的行为是正常的。父组件中的数据还没有变化,因此子组件@Input ( )没有改变,因此子组件的ngOnChange( )没有被触发。

当数据从服务器到达时,父组件将更新其数据,因此子组件@Input()将相应更新,因此将在子组件上触发ngOnChange()。因此,Angular 将更新 go 以进行 UI 渲染。

这里的目标是在导航到同一个组件时,预先重置数据,甚至在等待新数据到达之前。

这怎么可能?

谢谢

4

0 回答 0