问题描述
我在使用itemRendere和材料芯片时遇到问题。我所拥有的是
<material-chips >
<material-chip *ngFor="let chip of data"
[value]="chip"
[removable]="true"
[selectionModel]="dataSelectionModel"
[itemRenderer]="dataOptionRenderer"
>
</material-chip>
</material-chips>
哪里
final SelectionModel<MyType> datasetSelectModel = SelectionModel<MyType>.multi();
List<MyType> get data=>dataSelectionModel.selectedValues.toList();
ItemRenderer<MyType> dataOptionRenderer= ...
对于类型安全性来说,一切都很好-选择模型和渲染器的通用类型完全相同。但这最终会导致错误
Expected a value of type '(dynamic) => String',but got one of type '(MyType) => String'
请注意,直接在material-chips标签上使用selectionModel和renderer会获得相同的结果-迫使我使用未键入的项目渲染器(这在两种情况下都会导致崩溃)
如何用角飞镖处理这种情况?
解决方法
您需要在组件上声明directiveTypes
@Component(
directiveTypes: [
Typed<MaterialChipsComponent<MyType>>()
],)