我在构建Consumer <AppModel>(脏,依赖项:[InheritedProvider <AppModel>])时引发了以下错误NoSuchMethodError:

时间:2020-10-13 12:55:22

标签: flutter dart mobile-application flutter-provider flutter-state

我在构建Consumer(脏,依赖项:[InheritedProvider])时引发了以下错误NoSuchMethodError: 这是app.dart文件

/museumPlusExport/sammlungsobjekt[@objId eq $id]/*[not(self::sachbegriff)]

运行时错误是

class App extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return AppState();
  }
}

class AppState extends State<App> with AfterLayoutMixin {
  final _app = AppModel();
  final _product = ProductModel();
  final _wishlist = WishListModel();
  final _shippingMethod = ShippingMethodModel();
  final _paymentMethod = PaymentMethodModel();
  final _order = OrderModel();
  final _search = SearchModel();
  final _recent = RecentModel();
  final _user = UserModel();

  @override
  void afterFirstLayout(BuildContext context) {
    Services().setAppConfig(serverConfig);
    _app.loadAppConfig();
  }

  @override
  Widget build(BuildContext context) {
    print("[AppState] build");
    return ChangeNotifierProvider<AppModel>.value(
      value: _app,
      child: Consumer<AppModel>(
        builder: (context, value,child) {
          return MultiProvider(
            providers: [
              Provider<ProductModel>.value(value: _product),
              Provider<WishListModel>.value(value: _wishlist),
              Provider<ShippingMethodModel>.value(value: _shippingMethod),
              Provider<PaymentMethodModel>.value(value: _paymentMethod),
              Provider<OrderModel>.value(value: _order),
              Provider<SearchModel>.value(value: _search),
              Provider<RecentModel>.value(value: _recent),
              ChangeNotifierProvider(builder: (context)=> UserModel()),
              ChangeNotifierProvider(builder: (context)=> CartModel()),
              ChangeNotifierProvider(builder: (context)=> CategoryModel()),
            ],
            child: MaterialApp(
              debugShowCheckedModeBanner: false,
              locale: new Locale(Provider.of<AppModel>(context).locale, ""),
              navigatorObservers: [
                FirebaseAnalyticsObserver(analytics: analytics),
              ],
              localizationsDelegates: [
                S.delegate,
                GlobalMaterialLocalizations.delegate,
                GlobalMaterialLocalizations.delegate,
                GlobalCupertinoLocalizations.delegate,
                DefaultCupertinoLocalizations.delegate,
              ],
              supportedLocales: S.delegate.supportedLocales,
              localeListResolutionCallback:
              S.delegate.listResolution(fallback: const Locale("en","")),
              home: SplashScreenAnimate(),
              routes: <String, WidgetBuilder>{
                "/home": (context) => MainTabs(),
                "/login": (context) => LoginScreen(),
                "/register": (context) => RegistrationScreen(),
                '/products': (context) => ProductsPage(),
                '/wishlist': (context) => WishList(),
                '/checkout': (context) => Checkout(),
                '/orders': (context) => MyOrders(),
                '/onboardscreen': (context) => OnBoardScreen(),
                '/blogs': (context) => BlogScreen(),
                '/notify': (context) => Notifications()
              },
              theme: Provider.of<AppModel>(context).darkTheme
                  ? buildDarkTheme().copyWith(
                  primaryColor:
                  HexColor(_app.appConfig["Setting"]["MainColor"]))
                  : buildLightTheme().copyWith(
                  primaryColor:
                  HexColor(_app.appConfig["Setting"]["MainColor"])),
            ),
          );
        },
      ),
    );
  }

这是AppModel

The relevant error-causing widget was:
  Consumer<AppModel> file:///E:/MVS/Cossetpack/lib/app.dart:202:14

When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      AppState.build.<anonymous closure> (package:fstore/app.dart:252:42)
#2      Consumer.build (package:provider/src/consumer.dart:180:19)
#3      StatelessElement.build (package:flutter/src/widgets/framework.dart:4620:28)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4546:15)
#5      Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4525:5)
#7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4520:5)
...     Normal element mounting (23 frames)
#30     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
#31     Element.updateChild (package:flutter/src/widgets/framework.dart:3258:18)
#32     RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1174:16)
#33     RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1145:5)
#34     RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1087:17)
#35     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2620:19)
#36     RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1086:13)
#37     WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:927:7)
#38     WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:908:7)
(elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)

════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building Consumer<AppModel>(dirty, dependencies: [InheritedProvider<AppModel>]):
The method '[]' was called on null.
Receiver: null
Tried calling: []("Setting")

The relevant error-causing widget was: 
  Consumer<AppModel> file:///E:/MVS/Cossetpack/lib/app.dart:202:14
When the exception was thrown, this was the stack: 
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      AppState.build.<anonymous closure> (package:fstore/app.dart:252:42)
#2      Consumer.build (package:provider/src/consumer.dart:180:19)
#3      StatelessElement.build (package:flutter/src/widgets/framework.dart:4620:28)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4546:15)
...
════════════════════════════════════════════════════════════════════════════════════════════════════

Another exception was thrown: 'dart:ui/window.dart': Failed assertion: line 285: '<optimized out>': is not true.

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
'dart:ui/window.dart': Failed assertion: line 285: '<optimized out>': is not true.
The relevant error-causing widget was: 
  Consumer<AppModel> file:///E:/MVS/Cossetpack/lib/app.dart:202:14
════════════════════════════════════════════════════════════════════════════════════════════════════

在添加Consumer Widget之前,它工作正常,但是现在我必须添加App checkout功能,并且已经添加了代码,但出现错误 请建议我在哪里做错了

0 个答案:

没有答案