Flutter 提供方:“;错误状态:试图读取在创建其值时抛出的提供程序;

Flutter 提供方:“;错误状态:试图读取在创建其值时抛出的提供程序;,flutter,flutter-dependencies,Flutter,Flutter Dependencies,我正在使用库,如下所示: runApp( LocalizedApp( delegate, MyApp( localizedValues: {}, ), ), ); 然后: class MyApp extends StatelessWidget { final Map<String, Map<String, String>> localizedValues; MyApp({required t

我正在使用库,如下所示:

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
    ],
类MyApp扩展了无状态小部件{
最终地图定位值;
MyApp({required this.localizedValues});
@凌驾
小部件构建(构建上下文){
最终本地化委托=LocalizedApp.of(context).delegate;
回程多供应商(
供应商:[
ChangeNotifierProvider(创建:()=>MyRents()),
],
孩子:MaterialApp(
initialRoute:initialRoute,
本地化授权:[
GlobalMaterialAllocalizations.delegate,
GlobalSuperTinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
本地化代表
],
这是我的提供商:

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();
类mynotifier{
//此时未使用的变量列表
bool loadingUserInfo=false;
var语言;
//列表=租金列表;
列表=[];
int currentPortfolioIndex=0;
int currenRentIndex=0;
变异克隆租金;
列出新GalleryImage=[];//我们尚未推送的本地库图像
共享引用?首选项;
字符串viewMode='multi';
bool galleryScrollView=true;
PageController portfolioController=PageController(初始页:0);
MyUser?user;//TODO:将其移动到单独的提供程序
列出产品=[];
清单采购=[];
bool showAds=false;
Map companyInfo={};
清单预扣税=[];
列明税项=[];
//结束列表
//MyRents();//TODO:检查null(这在Flatter 1中工作,但现在不工作,因此可能与错误有关)。。。
最终MyRents MyRents=MyRents();/…这是颤振2版本
updateUI(){
notifyListeners();
}
}
最终MyRents MyRents=MyRents();
这在颤振1中工作得很好,但我现在在颤振2中遇到了这个错误:

重新组装主管道。dart$main-2339422228391703失败: ext.flatter.rebomble:(-32000)服务器错误{“异常”:“错误状态:
试图读取在其创建过程中抛出的提供程序 值。\n创建类型时发生异常 MyRents.,“stack”:“#0 _CreateInheritedProviderState.value (包:provider/src/inherited_provider.dart:661:7)\n#1
_InheritedProviderScopeElement.Remomble(包:provider/src/inherited_provider.dart:367:60)\n#2
元素。重新组装。 (包:flatter/src/widgets/framework.dart:3072:13)\n#3
ComponentElement.visitChildren (包:flatter/src/widgets/framework.dart:4549:14)\n#4
元素。重新组装 (包:flatter/src/widgets/framework.dart:3071:5)\n#5
元素。重新组装。 (软件包:flatter/src/widgets/framework.dart:3072:13)\n#6
ComponentElement.visitChildren (包:flatter/src/widgets/framework.dart:4549:14)\n#7
元素。重新组装 (软件包:flatter/src/widgets/framework.dart:3071:5)\n#8
元素。重新组装。 (包:flatter/src/widgets/framework.dart:3072:13)\n#9
ComponentElement.visitChildren (包:flatter/src/widgets/framework.dart:4549:14)\n#10
元素。重新组装 (软件包:flatter/src/widgets/framework.dart:3071:5)\n#11
元素。重新组装。 (软件包:flatter/src/widgets/framework.dart:3072:13)\n#12
ComponentElement.visitChildren (包:flatter/src/widgets/framework.dart:4549:14)\n#13
元素。重新组装 (软件包:flatter/src/widgets/framework.dart:3071:5)\n#14
元素。重新组装。 (软件包:flatter/src/widgets/framework.dart:3072:13)\n#15
ComponentElement.visitChildren (包:flatter/src/widgets/framework.dart:4549:14)\n#16
元素。重新组装 (软件包:flatter/src/widgets/framework.dart:3071:5)\n#17
元素。重新组装。 (软件包:flatter/src/widgets/framework.dart:3072:13)\n#18
ComponentElement.visitChildren (包:flatter/src/widgets/framework.dart:4549:14)\n#19
元素。重新组装 (软件包:flatter/src/widgets/framework.dart:3071:5)\n#20
StatefulElement.reposemble (包:flatter/src/widgets/framework.dart:4624:11)\n#21
元素。重新组装。 (软件包:flatter/src/widgets/framework.dart:3072:13)\n#22
RenderObjectToWidgetElement.visitChildren (软件包:flatter/src/widgets/binding.dart:1139:14)\n#23
元素。重新组装 (软件包:flatter/src/widgets/framework.dart:3071:5)\n#24
重新组装 (包:flatter/src/widgets/framework.dart:2892:12)\n#25
WidgetsBinding.PerformReasemble (软件包:flatter/src/widgets/binding.dart:951:19)\n#26
BindingBase.lockEvents (包装:颤振/src/foundation/binding.dart:298:41)\n#27
BindingBase.RemobleApplication (包装:颤振/src/foundation/binding.dart:338:12)\n#28
BindingBase.registerSignalServiceExtension。 (包装:颤振/src/foundation/binding.省道:375:23)\n#29
BindingBase.registerSignalServiceExtension。 (包装:颤振/src/foundation/binding.dart:374:17)\n#30
BindingBase.registerServiceExtension。 (包:flatter/src/foundation/binding.dart:597:32)\n\n,“方法”:“ext.flatter.recompose”}

还有另一个:

=======================================================================================================在的服务扩展回调期间引发以下状态错误 “ext.flatter.rebomble”:错误状态:试图读取 在创建其值时引发。在 类型MyRents的创建

评论一下

final MyRents MyRents=MyRents();
并使用此


ChangeNotifierProvider(create:(\u)=>MyRents())

请发布
MyRents
提供程序。在构建过程中出现错误。完成。我删除了一些不必要的代码。当时没有调用任何内容(我猜)“试图读取在创建其值时抛出的提供程序。”错误显示在那里。如果该类的变量为null,则可以在build或didChangeDependencies上使用final变量。请将此注释掉
final MyRents MyRents=MyRents()