在我正在构建的Angular 5应用程序中,我有一个侧面菜单和主要内容菜单 .
左侧的两个菜单项使用不同的路径数据加载相同的组件 .
默认情况下,Angular使用相同的组件实例来渲染它们 . 因此, ngOnInit() 将只被调用一次(一个实例) .
要呈现的组件包含子组件(更改检测设置为 OnPush ) . 子组件接收数据 @Input()
单击第一个菜单项时,将正确呈现数据 . 单击第二个菜单项时, old data is still showing 一旦新数据从服务器到达,它就会被渲染 .
提到的行为是正常的 . 父组件中的数据没有更改 yet 因此未更改子组件 @Input() ,因此未触发子组件的 ngOnChange() .
当数据从服务器到达时,父组件将更新其数据,因此子组件 @Input() 将相应更新,因此将在子组件上触发 ngOnChange() . 因此,Angular将更新用于UI呈现 .
这里的目标是在等待新数据到达之前导航到同一组件,预先重置数据 .
那怎么可行?
谢谢