我在Bloc Provider中有一个带有手势检测器的状态控件。
@override
Widget build(BuildContext context) {
return RepositoryProvider.value(
value: _authRepository,
child: BlocProvider(
create: (context) => AuthBloc(authRepository: AuthRepository()),
child: Scaffold(
body: GestureDetector(
onTap: () {
showSignInBottomSheet(context);
},
),
),
),
);
}
}
在点击我想显示一个模态bottom表,我希望可以访问我以前创建的集团。
有人告诉我,应该用BlocProvider.value Package 模态构建器,以达到这个目的。
showSignInBottomSheet(BuildContext context) => showModalBottomSheet(
context: context,
isScrollControlled: true,
backgroundColor: Colors.white,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(top: Radius.circular(0.0)),
),
builder: (context) {
return BlocProvider.value(
value: BlocProvider.of<AuthBloc>(context, listen: false),
child: Container(
padding: const EdgeInsets.only(top: 40),
height: MediaQuery.of(context).size.height,
child: Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 15.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
springWidget(() {
Navigator.of(context).pop();
},
const Icon(
CupertinoIcons.xmark,
size: 20,
)),
],
),
),
Expanded(
child: Container(
color: Colors.red,
)),
],
)));
});
但我仍然得到这个错误。
BlocProvider.of() called with a context that does not contain a AuthBloc.
No ancestor could be found starting from the context that was passed to BlocProvider.of<AuthBloc>().
我对集团国家管理这件事还不熟悉,所以我真的不知道出了什么问题.
请在我被淹没之前帮帮我。
1条答案
按热度按时间6jygbczu1#
重命名
showModalBottomSheet
中的构建器上下文,以便您的BlocProvider
使用正确的上下文。收件人:
下面是一个完整的工作示例: