【问题标题】:Unhandled Exception: type 'String' is not a subtype of type 'DateTime' in type cast未处理的异常:类型“String”不是类型转换中“DateTime”类型的子类型
【发布时间】:2021-12-01 06:26:57
【问题描述】:

我是 Flutter 的新手 我想从快照中获取数据并加载到屏幕但得到了这个异常我该如何解决它 对不起我的英语不好

transaction_db.dart

class TransactionDB {
  String dbName;
  TransactionDB({required this.dbName});

//HERE I TRY TO LOAD DATA FROM LOCAL DB AND GET DATA FROM LIST<DYNAMIC> IS THIS USABLE TO GET DATA AND TAKE IT TO SCREEN
Future<List<dynamic>> loaddata() async {
    var db = await opendb();
    var store = intMapStoreFactory.store('expense');
    //find = select find return list snapshot
    var snapshot = await store.find(db);
    List transactionList = <Transactions>[]; //<<< IS THIS BE LIKE COPY STRUCTOR?
    for (var record in snapshot) {
      transactionList.add(Transactions(
          title: record['title'] as String,
          subtitle: record['subtitle'] as String,
          date: record['date'] as DateTime)); //<<<<<EXCEPTION BY THIS
    }
    return transactionList;
  }
}

transaction_provider.dart

class TransactionProvider with ChangeNotifier {

  List<dynamic> transactions = [];

  void addTransaction(Transactions statement) async {
    var db = TransactionDB(
        dbName:
            'transactions.db'); 
 
    //select data to db
    transactions = await db.loaddata();

    notifyListeners();
  }
}

transaction.dart

class Transactions {
  String title ;
  String? subtitle ;
  DateTime date ;

  Transactions({required this.title,required this.subtitle,required this.date});
}
 

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您的服务返回(可能)一个字符串类型(不是日期时间类型),因此 Dart 无法将字符串解释为日期时间。 为此,请使用 date: DateTime.parse(record['date'] as String) 而不是 date: record['date'] as DateTime

    【讨论】:

      猜你喜欢
      • 2019-08-03
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 2021-01-17
      相关资源
      最近更新 更多