我做了一个小 ->stackblitz <- to demonstrate my issue.
我有一个具有平移缩放功能的主组件,其中有一个父组件保存一些内容(子组件)。正在使用的库是ngx-panzoom。
使用默认的更改检测策略似乎工作得很好,尽管在我的实际情况中,我在
cdr.detectChanges()
函数的最后需要手动操作ngAfterViewInit
。
在 stackblitz 示例中,我将
ChangeDetectionStrategy
保留为默认值,看起来它正在工作。当我尝试触发手动更改检测(通过私有 detectChanges
函数)时,设置 panZoomAPI 的部分会收到 null
/undefined
而不是实际的 api。
稍后会破坏
resetPanZoom
函数,该函数尝试计算内容的宽度并将其居中,以便看起来不错。
如果我触发手动更改检测,有什么想法为什么我的
api
是undefined
吗?
您可以自己检查这些值,
panzoomConfig.api
首先发出一个值,其中每个条目都是null
。
发出的第二个值包含您正在查找的所有函数。您可能应该跳过第一个值。
this.panzoomConfig.api.pipe(takeUntil(this.ngUnsubscribe), skip(1))