Ad

How To Pass An Existing Repository Instance To The Next Page In Flutter Using The Flutter_bloc Package?

- 1 answer

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:....) ?

Ad

Answer

Actually there is a named constructor value available for RepositoryProvider which you can use.

RepositoryProvider.value(
  value: repository,
  child: Container(),
);
Ad
source: stackoverflow.com
Ad