我有点麻烦,我正在尝试使用 getIt 实例来注册我的提供者。但是我收到了一个意外错误“状态不佳:试图读取在创建其值期间抛出的提供程序。 在创建类型 BottomNavigationProvider 时发生异常”。
任何人之前都通过这个错误?
我的供应商
class BottomNavigationProvider with ChangeNotifier {
final ChangeCurrentIndex changeCurrentIndex;
BottomNavigationProvider({required ChangeCurrentIndex changeCurrent})
: changeCurrentIndex = changeCurrent;
var _currentIndex = 0;
int getCurrent() {
return _currentIndex;
}
set setCurrent(dynamic value) {
print('Provider set current call');
notifyListeners();
}
}
我的注射器容器
import 'package:get_it/get_it.dart';
import './presentation/providers/bottom_navigation.provider.dart';
import './domain/useCases/change_current_index.dart';
final getIt = GetIt.instance;
initBottomNavigationContainer(){
//providers
getIt.registerFactory(
() => BottomNavigationProvider(changeCurrent: getIt()),
);
//use cases
getIt.registerLazySingleton(() => ChangeCurrentIndex(getIt()));
}
我的主要与注入器声明
void main() {
initContainer();
runApp(MyApp());
}
initContainer() async {
await initExampleContainer();
await initBottomNavigationContainer();
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: '/',
routes: {
'/': (context) => SplashScreenPage(),
'/example': (context) => ExamplePage(),
},
);
}
}