Issue
I have the following code that passes a bloc to the next page
Navigator.of(context).push(
MaterialPageRoute<CreateFeedSelectClass>(
builder: (_) => BlocProvider.value(
value: BlocProvider.of<TeacheractivityfeedBloc>(context),
child: CreateFeedSelectClass(imageStringList: state.selectedImages, imagePathList: state.selectedImagePaths, classList: state.classList,))
)
);
I would like to pass this repository that was already created in this page before the build function
TeacherRepository _teacherRepository = TeacherRepository();
In the example from flutter bloc (https://pub.dev/packages/flutter_bloc)
there is only a way to create a new instance, I want to pass the existing instance instead of creating a new one:
RepositoryProvider(
create: (context) => RepositoryA(), //----->
child: ChildA(),
);
instead of
create: is there any way to do something like value: _teacherRepository like how we do it with BlocProvider.value(value:….) ?
Solution
Actually there is a named constructor value
available for RepositoryProvider
which you can use.
RepositoryProvider.value(
value: repository,
child: Container(),
);
Answered By – Amir_P
Answer Checked By – Marilyn (FlutterFixes Volunteer)