如何在 Flutter 的“MultiProvider”中添加一个 switch case?

问题描述 投票:0回答:0

我正在尝试使用如下代码

class MultiPageProvider extends StatefulWidget {
  const MultiPageProvider({Key? key}) : super(key: key);

  @override
  _MultiPageProviderState createState() => _MultiPageProviderState();
}

class _MultiPageProviderState extends State<MultiPageProvider> {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider<UserModal>(
      create: (context) => UserModal(),
      child: Scaffold(
        appBar: AppBar(
          title: const Text(
            "Using Provider",
          ),
        ),
        body: Consumer<UserModal>(
          builder: (context, modal, child) {
            switch (modal.activeIndex) {
              case 0:
                return const BasicDetails();
              case 1:
                return const EducationDetails();

              default:
                return const BasicDetails();
            }
          },
        ),
      ),
    );
  }
}

但是只要我像下面这样使用

main.dart
函数内的所有提供者,我想知道如何将这个提供者添加到
main.dart
像其他人一样?

类 MyApp 扩展 StatelessWidget { const MyApp({super.key});

@override
Widget build(BuildContext context) {
  return MultiProvider(
    providers: [
      ChangeNotifierProvider.value(
        value: Auth(),
      ),
      ChangeNotifierProxyProvider<Auth, Books>(
        create: (ctx) => Books('', []),
        update: (ctx, auth, previousBooks) => Books(
          auth.userId,
          previousBooks == null ? [] : previousBooks.books,
        ),
      ),

    ],
};

}

flutter dart provider flutter-change-notifier
© www.soinside.com 2019 - 2024. All rights reserved.