【问题标题】:type '_Type' is not a subtype of type 'Widget?'类型“_Type”不是“小部件”类型的子类型?
【发布时间】:2021-01-19 09:43:28
【问题描述】:

在我的代码中,消费者身份验证的问题,我在这里找到了一个类似的 q,但与我的错误无关,我尝试了很多方法来解决它,有人可以帮忙吗?

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
        providers: [
          ChangeNotifierProvider.value(value: Auth()),
          ChangeNotifierProxyProvider<Auth, ProductProvider>(
            update: (ctx, auth, previousprod) => ProductProvider(
                auth.token, previousprod == null ? [] : previousprod.items),
          ),
          ChangeNotifierProvider.value(
            value: Cart(),
          ),
          ChangeNotifierProvider.value(
            value: Order(),
          )
        ],
        child: Consumer<Auth>(
          builder: (ctx, auth, _) => MaterialApp(
            debugShowCheckedModeBanner: false,
            title: 'MyShop',
            theme: ThemeData(
                primarySwatch: Colors.purple,
                accentColor: Colors.deepOrange,
                fontFamily: 'Lato'),
            home: auth.isAuth ? ProductOverviewScreen : AuthScreen(),
            routes: {
              // '/':(ctx)=> ProductOverviewScreen(),
              ProductDetailScreen.routName: (ctx) => ProductDetailScreen(),
              CartScreen.routName: (ctx) => CartScreen(),
              OrderScreen.routName: (ctx) => OrderScreen(),
              ProductOverviewScreen.routName: (ctx) => ProductOverviewScreen(),
              UserProductsScreen.routName: (ctx) => UserProductsScreen(),
              EditProductScreen.routName: (ctx) => EditProductScreen(),
            },
          ),
        ));
  }
}

【问题讨论】:

  • 我想你忘了在home: ... 中构造ProductOverviewScreen。应该是ProductOverviewScreen()

标签: flutter dart flutter-widget


【解决方案1】:

相信这是解决方法,只需复制粘贴并告诉我 :)

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
        providers: [
          ChangeNotifierProvider.value(value: Auth()),
          ChangeNotifierProxyProvider<Auth, ProductProvider>(
            update: (ctx, auth, previousprod) => ProductProvider(
                auth.token, previousprod == null ? [] : previousprod.items),
          ),
          ChangeNotifierProvider.value(
            value: Cart(),
          ),
          ChangeNotifierProvider.value(
            value: Order(),
          )
        ],
        child: Consumer<Auth>(
          builder: (ctx, auth, _) => MaterialApp(
            debugShowCheckedModeBanner: false,
            title: 'MyShop',
            theme: ThemeData(
                primarySwatch: Colors.purple,
                accentColor: Colors.deepOrange,
                fontFamily: 'Lato'),
            home: auth.isAuth ? ProductOverviewScreen() : AuthScreen(),
            routes: {
              // '/':(ctx)=> ProductOverviewScreen(),
              ProductDetailScreen.routName: (ctx) => ProductDetailScreen(),
              CartScreen.routName: (ctx) => CartScreen(),
              OrderScreen.routName: (ctx) => OrderScreen(),
              ProductOverviewScreen.routName: (ctx) => ProductOverviewScreen(),
              UserProductsScreen.routName: (ctx) => UserProductsScreen(),
              EditProductScreen.routName: (ctx) => EditProductScreen(),
            },
          ),
        ));
  }
}

【讨论】:

  • 是的,它修复了它,我忘记提出的问题()我在发布问题后意识到 ?? 非常感谢你的帮助,我很感激
  • 哈哈哈酷哥们:p 很高兴现在一切都整理好了,这样做通常不会撒谎:p
猜你喜欢
  • 2019-07-23
  • 2020-08-31
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 2021-04-16
相关资源
最近更新 更多