在此消费者 Widget 上方找不到正确的提供者
Cound not find the correct Provider above this consumer Widget
我正在尝试使用图书馆提供者的多提供者。
但它不起作用,因为它找不到正确的提供者,尽管 material 之前的上部小部件是 MultiProvider。
我已经尝试导入任何东西,但仍然无法正常工作
class _LoginViewState extends State<LoginView> {
final TextEditingController _controller = TextEditingController();
@override
Widget build(BuildContext context) {
return BaseView<LoginModel>(
builder: (context, model, child) => Scaffold(
backgroundColor: backgroundColor,
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
StreamBuilder<Chat>(
stream: Provider.of<Socketio>(context).streamChat,
builder: (context, snapshot) {
return Text(snapshot.data?.toString() ?? 'Foo');
},
),
LoginHeader(
validationMessage: model.errorMessage,
controller: _controller),
model.state == ViewState.Busy
? CircularProgressIndicator()
那是我可以Provider.of
的地方
void main() {
setupLocator();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
StreamProvider<User>(
initialData: User.initial(),
builder: (context) => locator<AuthenticationService>().userController,
),
StreamProvider<Chat>(
initialData: Chat.initial(),
builder: (context) => locator<Socketio>().chatController,
),
],
child: MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(),
initialRoute: '/login',
onGenerateRoute: Router.generateRoute,
),
);
}
}```
this is where I provider socket io provider before Maetrialapp inside Multi Provider
问题是你在做什么:
Provider.of<Socketio>(context)
但是您永远不会创建 Provider<Socketio>
类型的提供者
查看您的代码,您可能想使用:
Provider.of<Chat>(context)
我正在尝试使用图书馆提供者的多提供者。 但它不起作用,因为它找不到正确的提供者,尽管 material 之前的上部小部件是 MultiProvider。
我已经尝试导入任何东西,但仍然无法正常工作
class _LoginViewState extends State<LoginView> {
final TextEditingController _controller = TextEditingController();
@override
Widget build(BuildContext context) {
return BaseView<LoginModel>(
builder: (context, model, child) => Scaffold(
backgroundColor: backgroundColor,
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
StreamBuilder<Chat>(
stream: Provider.of<Socketio>(context).streamChat,
builder: (context, snapshot) {
return Text(snapshot.data?.toString() ?? 'Foo');
},
),
LoginHeader(
validationMessage: model.errorMessage,
controller: _controller),
model.state == ViewState.Busy
? CircularProgressIndicator()
那是我可以Provider.of
的地方void main() {
setupLocator();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
StreamProvider<User>(
initialData: User.initial(),
builder: (context) => locator<AuthenticationService>().userController,
),
StreamProvider<Chat>(
initialData: Chat.initial(),
builder: (context) => locator<Socketio>().chatController,
),
],
child: MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(),
initialRoute: '/login',
onGenerateRoute: Router.generateRoute,
),
);
}
}```
this is where I provider socket io provider before Maetrialapp inside Multi Provider
问题是你在做什么:
Provider.of<Socketio>(context)
但是您永远不会创建 Provider<Socketio>
查看您的代码,您可能想使用:
Provider.of<Chat>(context)