使用 String 调用一个 WIdget Flutter

Use String to call a WIdget Flutter

以我为例: 我有 listTemplates 相同的:

List<TemplateModel> listTemplate = [
TemplateModel(
    id: 1,
    name: 'Temp_1',
    previewBack: AppImages.TEMP_1,
    previewFront: AppImages.TEMP_1,),
TemplateModel(
    id: 2,
    name: 'Temp_2',
    previewBack: AppImages.TEMP_2,
    previewFront: AppImages.TEMP_2),
TemplateModel(
    id: 3,
    name: 'Temp_3',
    previewBack: AppImages.TEMP_3,
    previewFront: AppImages.TEMP_3),
TemplateModel(
    id: 4,
    name: 'Temp_4',
    previewBack: AppImages.TEMP_4,
    previewFront: AppImages.TEMP_4),
  ];

我还有Temp_1(), Temp_2(), Temp_3(), Temp_4() 小部件。

我想按模板名称显示每个 例如:

Container(
    child: `Temp_1`(), // It's my explain to try to show my problem, of course, it's not work.
);

我不想在这种情况下使用 if-elseswitch-case 因为我的列表模板太大了.

感谢您的回答!

我认为现在不支持。对于这种情况,您使用正确的解决方案吗?

不,你不能。您可以使用的另一个选项 - Map.

final temperatureUI = {
    1: Temp_1(),
    ...
}

然后

Container(
    child: temperatureUI[templateModel.id],
);