Я не могу заставить работать мое приложение при использовании ChangeNotifierProxyProvider.
Ссылка на мой проект: https://github.com/BH4R47k/Practice-Shopping-App.git Я надеюсь, что кто-то загрузит проект и запустит его, чтобы решить мою проблему .
Посмотрите в файле main.dart, где я использую ChangeNotifierProxyProvider. Я хочу знать, сделал ли я что-то не так (не только в main.dart, но и в полном проекте [ссылка дана выше]), а также был бы признателен, если бы кто-то решил мою проблему.
И я также помещаю мой код здесь main.dart
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import './screens/splash_screen.dart';
import './screens/cart_screen.dart';
import './screens/products_overview_screen.dart';
import './screens/product_detail_screen.dart';
import './providers/products.dart';
import './providers/cart.dart';
import './providers/orders.dart';
import './providers/auth.dart';
import './screens/orders_screen.dart';
import './screens/user_products_screen.dart';
import './screens/edit_product_screen.dart';
import './screens/auth_screen.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider.value(
value: Auth(),
),
ChangeNotifierProxyProvider<Auth, Products>(
create: (context) => Products(
Provider.of<Products>(context).authToken,
Provider.of<Products>(context).userId,
Provider.of<Products>(context).items,
),
update: (context, auth, previousProducts) => Products(
auth.token,
auth.userId,
previousProducts == null ? [] : previousProducts.items,
),
),
ChangeNotifierProvider.value(
value: Cart(),
),
ChangeNotifierProxyProvider<Auth, Orders>(
create: (context) => Orders(
Provider.of<Orders>(context).authToken,
Provider.of<Orders>(context).userId,
Provider.of<Orders>(context).orders,
),
update: (context, auth, previousOrders) => Orders(
auth.token,
auth.userId,
previousOrders == null ? [] : previousOrders.orders,
),
),
],
child: Consumer<Auth>(
builder: (ctx, auth, _) => MaterialApp(
title: 'MyShop',
theme: ThemeData(
primarySwatch: Colors.purple,
accentColor: Colors.deepOrange,
fontFamily: 'Lato',
),
home: auth.isAuth
? ProductsOverviewScreen()
: FutureBuilder(
future: auth.tryAutoLogin(),
builder: (ctx, authResultSnapshot) =>
authResultSnapshot.connectionState ==
ConnectionState.waiting
? SplashScreen()
: AuthScreen(),
),
routes: {
ProductDetailScreen.routeName: (ctx) => ProductDetailScreen(),
CartScreen.routeName: (ctx) => CartScreen(),
OrdersScreen.routeName: (ctx) => OrdersScreen(),
UserProductsScreen.routeName: (ctx) => UserProductsScreen(),
EditProductScreen.routeName: (ctx) => EditProductScreen(),
},
),
),
);
}
}
Заранее спасибо.