我有一个提供模型对象的组件,该模型对象可以是几种类型,它是哪种类型决定了将在内部呈现什么组件:
<div [ngSwitch]="poolModel.runtimeType.toString()">
<template ngSwitchCase="CryptonoteMiningPool"><cryptonote-pool [model]="poolModel"></cryptonote-pool></template>
<template ngSwitchCase="DaggerHashimotoMiningPool"><dag-hash-pool [model]="poolModel"></dag-hash-pool></template>
</div>
这在 Debug模式下效果很好,但是当我为发行版进行编译时,runtimeType总是返回“fS”。
我有一个解决方案,本质上是在模型中设置一个常量并查看该常量,但如果可以避免的话,宁愿没有麻烦,因为我最终可能需要维护许多类型的模型。
有没有一种方法可以使runtimeType返回 Release模式下的期望值?
最佳答案
运行时类型不是我要用于程序逻辑的东西。它会根据编译器选项进行更改,实际上甚至使用它也会使您的应用程序(在dart2js中)的优化工作更加困难。
我们在dart2js性能指南中禁止使用它。
您最好创建某种基类:
abstract class DynamicRender {
String get renderType;
}
并让您的类扩展/混合/实现并改为使用它。