类型“_Type”不是类型 'Widget?' 的子类型
type '_Type' is not a subtype of type 'Widget?'
在我的代码中,消费者身份验证存在问题,我在这里发现了一个类似的问题,但与我的错误无关,我尝试了很多方法来解决它,有人可以帮忙吗?
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(),
},
),
));
}
}
相信这是解决方法,只需复制粘贴并告诉我:)
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(),
},
),
));
}
}
在我的代码中,消费者身份验证存在问题,我在这里发现了一个类似的问题,但与我的错误无关,我尝试了很多方法来解决它,有人可以帮忙吗?
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(),
},
),
));
}
}
相信这是解决方法,只需复制粘贴并告诉我:)
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(),
},
),
));
}
}