Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试在angular 9中将组件名称从字符串转换为组件类型时,传入的类型不是ComponentType错误_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 尝试在angular 9中将组件名称从字符串转换为组件类型时,传入的类型不是ComponentType错误

Javascript 尝试在angular 9中将组件名称从字符串转换为组件类型时,传入的类型不是ComponentType错误,javascript,angular,typescript,Javascript,Angular,Typescript,在模板HTML中: <ng-container *ngComponentOutlet="getComponent(item.component); injector: dynamicComponentInjector"> </ng-container> 但是(这不起作用),因为我需要从数据库中获取值,所以我将它作为字符串获取,如“ProductTitleComponent”。我尝试了以下选项,但什么也没发生 获取错误:错误:断言错误:传入的类型不是C

在模板HTML中:

<ng-container *ngComponentOutlet="getComponent(item.component); injector: dynamicComponentInjector">
</ng-container>
但是(这不起作用),因为我需要从数据库中获取值,所以我将它作为字符串获取,如“ProductTitleComponent”。我尝试了以下选项,但什么也没发生

获取错误:错误:断言错误:传入的类型不是ComponentType,它没有“ɵcmp”属性


通过这样做,我能够解决这个问题

getComponent(component){
  const comp = { ProductTitleComponent }
  return comp[component];
}

将“ProductTitleComponent”视为组件值。在这种情况下,我必须在每次创建组件到comp对象时添加一个组件。是否有更好的解决方案。

您甚至没有尝试转换它,您只是传递字符串,显然无法工作。
getComponent(component){
  return component as Component; //component = 'ProductTitleComponent'
}


getComponent(component){
  return JSON.parse(component); //component = 'ProductTitleComponent'
}
getComponent(component){
  const comp = { ProductTitleComponent }
  return comp[component];
}