Я пытаюсь использовать мультипровайдер из библиотеки Provider.
Но это не работает, потому что он не может найти правильного провайдера, хотя верхний виджет до того, как материал 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