Ввести в службу в ProxyProvider

Я хочу использовать ProxyProvider в моем проекте flutter, но понятия не имею, как правильно его реализовать.

main.dart

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      child: MaterialApp(
        title: 'Sample',
        theme: ThemeData(
          accentIconTheme: IconThemeData.fallback().copyWith(
            color: Colors.white,
          ),
          primaryTextTheme: TextTheme(
            title: TextStyle(
              color: Colors.white,
            ),
          ),
          primarySwatch: Colors.orange,
          primaryIconTheme: IconThemeData.fallback().copyWith(
            color: Colors.white,
          ),
        ),
        home: AuthenticationPage(),
        localizationsDelegates: [
          const LocalizationDelegate(),
          GlobalMaterialLocalizations.delegate,
          GlobalWidgetsLocalizations.delegate
        ],
        supportedLocales: [
          const Locale('en', ''),
          const Locale('zh', ''),
        ],
      ),
      providers: globalProviders,
    );
  }
}

globalProviders.dart

var globalProviders = [
  ...independentServices,
  ...dependentServices,
];

var independentServices = [
  Provider<WebService>(
    create: (_) => WebService.create(),
    dispose: (_, webService) => webService.client.dispose(),
  ),
];

var dependentServices = [
  ProxyProvider<WebService, ABCStore>(
      update: (context, webService, storageService) =>
          ABCStore(webService,storageService))  // here the error
];

ABCStore

class ABCStore = _ABCStore with _$ABCStore;

abstract class ABCStore with Store {
  final WebService _webService;
  final StorageService _storageService;

  _ABCStore(this._webService,this._storageService);

      ....

  @computed
  StoreState get state {
   ....
  }

  @action
      ...
  }
}

Я создаю свое приложение с использованием архитектуры mobx. я используюchopper как веб-сервис, и hive как складские услуги.

У меня вопрос, как мне ввести storageService в ABCStore, как webService сделал?

ошибка

The argument type 'ABCStore' can't be assigned to the parameter type 'StorageService',

0 ответов

Другие вопросы по тегам