【发布时间】:2021-03-23 10:47:35
【问题描述】:
我有一个从 API 获取数据的 Cubit。我想将它连接到 UI,所以我首先在那个小部件的顶部添加了一个 BlocProvider。这给了我一个错误,所以我用 BlocProvider 包装了MaterialApp,它给出了同样的错误。之后,我尝试在我想要访问它的路线周围使用它,结果相同。
MaterialApp(
debugShowCheckedModeBanner: false,
theme: getThemeData(),
onGenerateRoute: _router.generateRoutes,
initialRoute: _store.get('users', defaultValue: {}).isEmpty
? '/onboarding'
: '/dashboard',
);
routes.dart
final PANCubit _panCubit = PANCubit(PANRepository());
Route<dynamic> generateRoutes(RouteSettings settings) {
switch (settings.name) {
// case '/':
// return MaterialPageRoute(builder: (context) => Home());
case '/':
case '/onboarding':
return MaterialPageRoute(
builder: (context) => BlocProvider.value(
value: _panCubit,
child: OnBoarding(),
),
);
...
我想在这里的 UI 中访问它:
OnBoardingView(
imagePath: process_svg,
titleWidget: BlocBuilder(
builder: (context, state) {
context.read<PANCubit>().getPANInformation(_panText.text);
if (state is PANLoading) {
return CircularProgressIndicator();
} else if (state is PANFetched) {
return Text(
'Hey ${state.panInformation.fullName}!',
style: Theme.of(context).textTheme.headline1,
);
} else {
return Text('Hmmm..Something went wrong.');
}
},
),
...
【问题讨论】:
-
你得到了什么确切的错误?
标签: flutter bloc flutter-bloc