flutter - 在 dart 中动态定义或转换变量类型
问题描述
所以我有这个功能:
Future<void> syncedData(String dataType, Map<String, dynamic> data) async {
// Open the Hive Box
await _openBoxByName(dataType);
// Put each data element in the Hive Box
data.forEach((k, v) {
Workout _v = v;
// var _v = v as Workout; - kinda same result
_putData(k, _v.toJson().toString(), dataType);
});
}
我还有 3 个模型类Workout
:Days
和Years
.
为了让我.toJson()
从 v 中获取方法,我需要这样做Workout _v = v;
:但我不知道如何v
动态转换类型Workout
和模型类Days
?Years
如果我不v
明确地转换为锻炼类模型,dart 就不知道我的任何 WOrkouts 方法。
我尝试过这样的事情,但没有奏效:
if (dataType == 'workout') Workout _v = v;
if (dataType == 'days') Days _v = v;
if (dataType == 'years') Years _v = v;
谢谢
解决方案
您可能应该将其编码为具有锻炼、天或年键值的 Map。我认为这将是非常好的 JSON。
推荐阅读
- reactjs - 单击按钮后,如何将按钮中的文本输入到警报中?(以及如何禁用和保持选中按钮)
- colors - 如果我想填充 PowerPoint 的纯色背景色,我需要什么代码?
- flutter - Flutter StreamBuilder 不返回数据
- datepicker - 清除今天显示/隐藏 ngx-daterangepicker-material 的日期
- visual-studio-code - vscode 扩展可以更漂亮地进行字符串填充吗?
- python - 使用Python使用广度优先搜索算法的两个节点之间的距离
- class - 如何在颤振中通过扩展自定义小部件来创建新小部件?
- vuepress - VuePress 不会热重载,但在 config.js 更改时会这样做
- python - Python 和 SQLite 存储变量
- r - 在R中按类型返回列的平均值