首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未处理异常-颤振

未处理异常-颤振
EN

Stack Overflow用户
提问于 2019-02-08 02:35:40
回答 1查看 8.4K关注 0票数 4

我刚开始在youtube上学习关于notodo_app的教程。因此,我遵循相同的代码,并且已经尝试重写几乎所有东西,但当我开始使用initstate,setstate时。

与setstate相关的代码

代码语言:javascript
复制
final List<NoDoItem> _itemList = <NoDoItem>[];

@override
void initState() {
 super.initState();
 _readNoDoList();
}


void _handleSubmitted(String text) async {
 _textEditingController.clear();

 NoDoItem noDoItem = NoDoItem(text, DateTime.now().toIso8601String());
 int savedItemId = await db.saveItem(noDoItem);
 NoDoItem addedItem = await db.getItem(savedItemId);
 setState(() {
  _itemList.insert(0, addedItem); 
 });
 print("Item saved id: $savedItemId");
}

_readNoDoList() async {
 List items = await db.getItems();
 items.forEach((item) {
   NoDoItem noDoItem = NoDoItem.map(item);
   print("Db items: ${noDoItem.itemName}");
 });
}

我得到了这个错误,没有提交一些东西,如果我使用的是仿真器,它将自动关闭。

代码语言:javascript
复制
E/flutter (23633): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
E/flutter (23633): Stack Overflow
E/flutter (23633): #0      _Completer.completeError (dart:async/future_impl.dart:19:3)
E/flutter (23633): #1      _RootZone.runBinary (dart:async/zone.dart:1384:54)
E/flutter (23633): #2      _FutureListener.handleError (dart:async/future_impl.dart:143:20)
E/flutter (23633): #3      Future._propagateToListeners.handleError (dart:async/future_impl.dart:654:47)
E/flutter (23633): #4      Future._propagateToListeners (dart:async/future_impl.dart:675:24)
E/flutter (23633): #5      Future._completeError (dart:async/future_impl.dart:494:5)
E/flutter (23633): #6      _SyncCompleter._completeError (dart:async/future_impl.dart:55:12)
E/flutter (23633): #7      _Completer.completeError (dart:async/future_impl.dart:27:5)
E/flutter (23633): #8      _RootZone.runBinary (dart:async/zone.dart:1384:54)
E/flutter (23633): #9      _FutureListener.handleError (dart:async/future_impl.dart:143:2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-08 03:37:06

您所关注的示例在它们的database_client.dart文件上出现了错误,特别是导致了流异常上的递归/堆栈。请更新第22行上的代码,从返回db;返回_db;,现在应该可以工作了。

代码语言:javascript
复制
Future<Database> get db async {
    if (_db != null) {
      return _db; // return db; throws a Stack Overflow Exception / recursion
    }
    _db = await initDb();
    return _db;
  }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54585312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档