ResoCoder/flutter-tdd-clean-architecture-course

get_it error

akoua opened this issue · 1 comments

akoua commented

I/flutter (30280): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (30280): The following assertion was thrown building Builder(dirty):
I/flutter (30280): You tried to access an instance of TriviaNumberLocalDataSource that was not ready yet
I/flutter (30280): 'package:get_it/get_it_impl.dart':
I/flutter (30280): Failed assertion: line 272 pos 14: 'instanceFactory.isReady'
I/flutter (30280): The relevant error-causing widget was:
I/flutter (30280): Builder
I/flutter (30280):
package:trivia_number_new/…/pages/trivia_number_page.dart:57
I/flutter (30280): When the exception was thrown, this was the stack

akoua commented

j'ai trouvé la solution en changeant les données dans injection_container.dart

sl.registerSingletonAsync(
() async => SharedPreferences.getInstance());

sl.registerSingletonWithDependencies(
() => TriviaNumberLocalDataSourceImpl(sharedPreferences: sl()),
dependsOn: [SharedPreferences]);

Et dans main.dart

return FutureBuilder(
future: sl.allReady(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
return MaterialApp(
title: "Number Trivia",
theme: ThemeData(
primaryColor: Colors.green.shade800,
accentColor: Colors.green.shade600),
home: TriviaNumberPage(),
);
} else {
return Center(
child: CircularProgressIndicator(),
);
}
});