[英]How to deal with generic typed component used in template in Angular Dart? (MaterialChip)
我在使用 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= ...
所以至於類型安全,一切都很好——通用類型選擇 model 和渲染器是完全一樣的。 然而,這最終會導致錯誤
Expected a value of type '(dynamic) => String', but got one of type '(MyType) => String'
請注意,直接在 material-chips 標簽上使用 selectionModel 和 renderer 會產生相同的結果 - 迫使我使用未類型化的項目渲染器(因為這在兩種情況下都有效)
如何處理angular dart中的這種情況?
您需要在組件上聲明directiveTypes
@Component(
directiveTypes: [
Typed<MaterialChipsComponent<MyType>>()
],
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.