【问题标题】:Flutter, a little Cubit BlocBuilder problemFlutter,一个小小的 Cubit BlocBuilder 问题
【发布时间】:2021-07-28 02:27:16
【问题描述】:

我正在尝试使用 BlockBuilder 显示我的 Cubit 的 int 状态,这是我的代码:

class CounterCubit extends Cubit<int> {

  CounterCubit() : super(0);
  void increment() => emit(state + 1);
  void decrement() => emit(state - 1);
}
class CounterContainer extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BlocProvider(create: (_) => CounterCubit(), child: CounterView());
  }
}
void main() {
  runApp(MaterialApp(
    theme: myTheme,
    home: CounterView(),
  ));
}
class CounterView extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final textTheme = Theme.of(context).textTheme;
    return Scaffold(
      appBar: AppBar(
        title: const Text("Example"),
      ),
      body: Center( //I guess the problem is here
          child: BlocBuilder<CounterCubit, int>(builder: (context, state) {
          return Text("$state", style: textTheme.headline2);
      })),

      //Increment and decrement button
      floatingActionButton: Column(
        mainAxisAlignment: MainAxisAlignment.end,
        crossAxisAlignment: CrossAxisAlignment.end,
        children: [
          FloatingActionButton(
            child: const Icon(Icons.add),
            onPressed: () => context.read<CounterCubit>().increment(),
          ),
          const SizedBox(
            height: 8,
          ),
          FloatingActionButton(
            child: const Icon(Icons.remove),
            onPressed: () => context.read<CounterCubit>().decrement(),
          )
        ],
      ),
    );
  }
}

控制台错误是

错误:在此 BlocBuilder 小部件上方找不到正确的提供程序

我已经尝试过使用 Provider 但它不能解决问题

【问题讨论】:

  • 这个例子对我有用。您能否包括您正在使用的颤振和软件包的版本,请:D
  • 嗨,@LuisA.Chaglla 我正在使用 Flutter 2.0.5、Dart 2.12.3 和 flutter_bloc:^7.0.0。我用我的主要代码更新了我的帖子

标签: flutter dart bloc mobile-development flutter-bloc


【解决方案1】:

你没有使用CounterContainer,所以你没有CounterCubit。 应该是:

void main() {
  runApp(MaterialApp(
    theme: myTheme,
    home: CounterContainer(),
  ));
}

【讨论】:

  • 哦??真的!!它也在这里工作,非常感谢!
猜你喜欢
  • 2021-10-10
  • 2021-05-09
  • 2022-10-13
  • 2021-01-29
  • 2022-01-01
  • 2020-12-26
  • 2023-01-20
  • 1970-01-01
  • 2022-01-09
相关资源
最近更新 更多