#flutter #dart #flutter-widget
#flutter #dart #flutter-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(),
},
),
));
}
}
Комментарии:
1. Я думаю, вы забыли сконструировать
ProductOverviewScreen
home: ...
. Так и должно бытьProductOverviewScreen()
.
Ответ №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(),
},
),
));
}
}
Комментарии:
1. да, это исправило проблему, которую я забыл поставить () я понял после того, как опубликовал вопрос 😂😂 большое спасибо за помощь, я ценю это
2. Хахаха классный гомерчик: p рад, что теперь все отсортировано, делай это часто, не буду врать: p