flutter - 提供者 : "Bad state: Tried to read a provider that threw during the creation of its value"

标签 flutter flutter-dependencies

我正在使用库 Provider 像这样:

runApp(
    LocalizedApp(
      delegate,
      MyApp(
        localizedValues: {},
      ),
    ),
  );
接着:
class MyApp extends StatelessWidget {
  final Map<String, Map<String, String>> localizedValues;
  MyApp({required this.localizedValues});

  @override
  Widget build(BuildContext context) {
    final localizationDelegate = LocalizedApp.of(context).delegate;

    return MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (_) => MyRents()),
      ],
      child: MaterialApp(
        initialRoute: initialRoute,
    localizationsDelegates: [
      GlobalMaterialLocalizations.delegate,
      GlobalCupertinoLocalizations.delegate,
      GlobalWidgetsLocalizations.delegate,
      localizationDelegate
    ],
这是我的提供者:
class MyRents extends ChangeNotifier {
// LIST OF VARS NOT USED AT THIS POINT

  bool loadingUserInfo = false;
  var language;
  // List list = rentsList;
  List list = [];
  int currentPortfolioIndex = 0;
  int currenRentIndex = 0;
  var clonedRent;
  List newGalleryImages = []; // local gallery images that we haven't pushed yet
  SharedPreferences? prefs;
  String viewMode = 'multi';
  bool galleryScrollView = true;
  PageController portfolioController = PageController(initialPage: 0);
  MyUser? user; // TODO: move this to a separate provider
  List<ProductDetails> products = [];
  List<PurchaseDetails> purchases = [];
  bool showAds = false;
  Map companyInfo = {};
  List withholdings = [];
  List<QueryDocumentSnapshot> taxes = [];
// END LIST


  // MyRents(); // TODO: check null (this was working in Flutter 1 but not now so it might be related to the error)...
  final MyRents myRents = MyRents(); // ...and this is the Flutter 2 version

  updateUI() {
    notifyListeners();
  }
}

final MyRents myRents = MyRents();
这在 Flutter 1 中运行良好,但我现在在 Flutter 2 中收到此错误:

Reassembling main.dart$main-2339422228391703 failed: ext.flutter.reassemble: (-32000) Server error {"exception":"Bad state: Tried to read a provider that threw during the creation of its value.\nThe exception occurred during the creation of type MyRents.","stack":"#0 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:661:7)\n#1
_InheritedProviderScopeElement.reassemble (package:provider/src/inherited_provider.dart:367:60)\n#2
Element.reassemble. (package:flutter/src/widgets/framework.dart:3072:13)\n#3
ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4549:14)\n#4
Element.reassemble (package:flutter/src/widgets/framework.dart:3071:5)\n#5
Element.reassemble. (package:flutter/src/widgets/framework.dart:3072:13)\n#6
ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4549:14)\n#7
Element.reassemble (package:flutter/src/widgets/framework.dart:3071:5)\n#8
Element.reassemble. (package:flutter/src/widgets/framework.dart:3072:13)\n#9
ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4549:14)\n#10
Element.reassemble (package:flutter/src/widgets/framework.dart:3071:5)\n#11
Element.reassemble. (package:flutter/src/widgets/framework.dart:3072:13)\n#12
ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4549:14)\n#13
Element.reassemble (package:flutter/src/widgets/framework.dart:3071:5)\n#14
Element.reassemble. (package:flutter/src/widgets/framework.dart:3072:13)\n#15
ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4549:14)\n#16
Element.reassemble (package:flutter/src/widgets/framework.dart:3071:5)\n#17
Element.reassemble. (package:flutter/src/widgets/framework.dart:3072:13)\n#18
ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4549:14)\n#19
Element.reassemble (package:flutter/src/widgets/framework.dart:3071:5)\n#20
StatefulElement.reassemble (package:flutter/src/widgets/framework.dart:4624:11)\n#21
Element.reassemble. (package:flutter/src/widgets/framework.dart:3072:13)\n#22
RenderObjectToWidgetElement.visitChildren (package:flutter/src/widgets/binding.dart:1139:14)\n#23
Element.reassemble (package:flutter/src/widgets/framework.dart:3071:5)\n#24
BuildOwner.reassemble (package:flutter/src/widgets/framework.dart:2892:12)\n#25
WidgetsBinding.performReassemble (package:flutter/src/widgets/binding.dart:951:19)\n#26
BindingBase.lockEvents (package:flutter/src/foundation/binding.dart:298:41)\n#27
BindingBase.reassembleApplication (package:flutter/src/foundation/binding.dart:338:12)\n#28
BindingBase.registerSignalServiceExtension. (package:flutter/src/foundation/binding.dart:375:23)\n#29
BindingBase.registerSignalServiceExtension. (package:flutter/src/foundation/binding.dart:374:17)\n#30
BindingBase.registerServiceExtension. (package:flutter/src/foundation/binding.dart:597:32)\n\n","method":"ext.flutter.reassemble"}


还有这个:

======== Exception caught by Flutter framework ===================================================== The following StateError was thrown during a service extension callback for "ext.flutter.reassemble": Bad state: Tried to read a provider that threw during the creation of its value. The exception occurred during the creation of type MyRents.

最佳答案

注释掉这个final MyRents myRents = MyRents(); 并使用这个ChangeNotifierProvider<MyRents>(create: (_) => MyRents())

关于flutter - 提供者 : "Bad state: Tried to read a provider that threw during the creation of its value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66859116/

相关文章:

dart - 我们在flutter中的dev_dependencies下添加的

android - 如何在 flutter 中生成条形码?

flutter - FLUTTER JUST_AUDIO Navigator.Push在完成播放后不起作用

dart - 自动调整文本以垂直适应容器

android - flutter 图像自动幻灯片/轮播,给定随机间隔

regex - Flutter 正则表达式验证中的十进制或有符号数值

flutter - 如何使用Flutter和Hive DB更新数据?

dart - 如何在 Fluro 或 Flutter 路由导航器中传递对象或对象列表?

dart - 沿着名称值对向服务器发送多部分请求

flutter - 实现BottomNavigationBar