在Flutter有状态widge中包含BlocProvider的正确方法

8fsztsew  于 2023-11-21  发布在  Flutter
关注(0)|答案(1)|浏览(152)

我正在尝试在有状态小部件中包含一个blocprovider CounterCubit。这是正确的方法吗?我已经创建了一个StatelessWidget Uno,其中一个blocprovider将有状态小部件UnoMain作为子级。

class Uno extends StatelessWidget {
  const Uno({super.key});

  @override
  Widget build(BuildContext context) {
    return BlocProvider(
      create: (_) => CounterCubit(),
      child: UnoMain(),
    );
  }
}

class UnoMain extends StatefulWidget {
  const UnoMain({ super.key });

  @override
  State<UnoMain> createState() => _UnoMainState();
}

class _UnoMainState extends State<UnoMain> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Material App Bar'),
      ),
      body: BlocBuilder<CounterCubit, int>(
        builder: (context, count) => Center(
            child: Column(
          children: [
            ...
          ],
        )),
      ),
      floatingActionButton: Column(
        ...
      ),
    );
  }
}

字符串

tcbh2hod

tcbh2hod1#

是的。还有一种方法可以在MultiBlocProvider中提供它,也可以在小部件树的某个位置提供它。
UnoMain也可以是StatelessWidget,如果不需要维护其中的某些状态。

相关问题