在Angular 8中,如果在添加动态组件时出现“undefined的viewContainerRef错误”,可以使用以下解决方法:
constructor(private viewContainerRef: ViewContainerRef) { }
import { Component, ViewChild, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';
import { DynamicComponent } from './dynamic.component';
@Component({
selector: 'app-parent',
template: ` `
})
export class ParentComponent {
@ViewChild('dynamicComponentContainer', { read: ViewContainerRef }) dynamicComponentContainer: ViewContainerRef;
constructor(private componentFactoryResolver: ComponentFactoryResolver) { }
loadDynamicComponent() {
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DynamicComponent);
const componentRef = this.dynamicComponentContainer.createComponent(componentFactory);
// 添加其他逻辑
}
}
import { Component, OnInit, ViewContainerRef } from '@angular/core';
@Component({
selector: 'app-dynamic',
template: `Dynamic Component`
})
export class DynamicComponent implements OnInit {
constructor(private viewContainerRef: ViewContainerRef) { }
ngOnInit() {
// 使用viewContainerRef进行其他操作
}
}
通过以上步骤,应该能够解决“undefined的viewContainerRef错误”问题,并成功添加动态组件。