overrideWith method

Override overrideWith(
  1. Create<NotifierT, StateNotifierProviderRef<NotifierT, T>> create

Override the provider with a new initialization function.

This will also disable the auto-scoping mechanism, meaning that if the overridden provider specified dependencies, it will have no effect.

The override must not specify a dependencies.

Some common use-cases are:

  • testing, by replacing a service with a fake implementation, or to reach a very specific state easily.
  • multiple environments, by changing the implementation of a class based on the platform or other parameters.

This function should be used in combination with ProviderScope.overrides or ProviderContainer.overrides:

final myService = Provider((ref) => MyService());

    overrides: [
      // Replace the implementation of the provider with a different one
      myService.overrideWithProvider((ref) {
        return MyFakeService(),
    child: MyApp(),


Override overrideWith(
  Create<NotifierT, StateNotifierProviderRef<NotifierT, T>> create,
) {
  return ProviderOverride(
    origin: this,
    override: StateNotifierProvider<NotifierT, T>.internal(
      from: from,
      argument: argument,
      dependencies: null,
      allTransitiveDependencies: null,
      debugGetCreateSourceHash: null,
      name: null,