【发布时间】: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