未实现的缺少静态目标的处理
Unimplemented handling of missing static target
我在开始屏幕上有一个登录按钮。我希望当用户单击此登录按钮时,我将使用“MaterialPageRoute”转到登录屏幕,并且我想将“BlocProvider”传递给登录屏幕。我做了以下操作,但发生了错误。
“错误信息
════════ 组件库捕获异常═════════════════════════════════ ═══
以下 _CompileTimeError 被抛出构建 MyApp(脏):
未实现的缺少静态目标的处理。
“
我是一个健忘的 Flutter 新手。我期待着大家的帮助。非常感谢。
press: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return BlocProvider<LoginBloc>(
create: (context) =>
LoginBloc(userRepository: _userRepository),
child: BlocBuilder<LoginBloc, LoginState>(
builder: (context, loginState) {
print('$loginState');
return LoginScreen();
},
) //LoginPage,
);
},
),
);
},
要将 bloc 传递到另一个屏幕,请使用 BlocProvider.Value()
见下面的代码:
press: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return BlocProvider.value(
value: BlocProvider.of<LoginBloc>(context),
child: LoginScreen(),
);
},
),
);
},
然后我们可以从 LoginScreen 检索 LoginBloc:
// with extensions
context.read<LoginBloc>();
// without extensions
BlocProvider.of<LoginBloc>(context);
以上代码片段导致一次性查找,并且不会通知小部件更改。要检索实例并订阅后续状态更改,请使用:
// with extensions
context.watch<LoginBloc>();
// without extensions
BlocProvider.of<LoginBloc>(context, listen: true);
我在开始屏幕上有一个登录按钮。我希望当用户单击此登录按钮时,我将使用“MaterialPageRoute”转到登录屏幕,并且我想将“BlocProvider”传递给登录屏幕。我做了以下操作,但发生了错误。
“错误信息
════════ 组件库捕获异常═════════════════════════════════ ═══ 以下 _CompileTimeError 被抛出构建 MyApp(脏): 未实现的缺少静态目标的处理。 “
我是一个健忘的 Flutter 新手。我期待着大家的帮助。非常感谢。
press: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return BlocProvider<LoginBloc>(
create: (context) =>
LoginBloc(userRepository: _userRepository),
child: BlocBuilder<LoginBloc, LoginState>(
builder: (context, loginState) {
print('$loginState');
return LoginScreen();
},
) //LoginPage,
);
},
),
);
},
要将 bloc 传递到另一个屏幕,请使用 BlocProvider.Value()
见下面的代码:
press: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return BlocProvider.value(
value: BlocProvider.of<LoginBloc>(context),
child: LoginScreen(),
);
},
),
);
},
然后我们可以从 LoginScreen 检索 LoginBloc:
// with extensions
context.read<LoginBloc>();
// without extensions
BlocProvider.of<LoginBloc>(context);
以上代码片段导致一次性查找,并且不会通知小部件更改。要检索实例并订阅后续状态更改,请使用:
// with extensions
context.watch<LoginBloc>();
// without extensions
BlocProvider.of<LoginBloc>(context, listen: true);