Dependancy Injection
의존성을 특정 변수를 한 곳에 선언하고 그 값을 어디서나 사용하도록 주입합니다.
타입을 넣으면 저장해 놓은 데이터를 가져올 수 있습니다.
[Main.dart]
void main() async {
final database = AppDatabase();
GetIt.I.registerSingleton<AppDatabase>(database);
[ScheduleBottomSheet.dart]
저장해 놓은 AppDatabase를 가져옵니다.
GetIt.I<AppDatabase>().getScheduleById(widget.id!),
return FutureBuilder(
future: widget.id == null
? null
: GetIt.I<AppDatabase>().getScheduleById(widget.id!),
//future가 변경될 때마다 builder가 실행된다.
builder: (context, snapshot) {
final data = snapshot.data?.schedule;
return Container(
color: Colors.white,
height: 600,
child: SafeArea(
child: Padding(
padding: EdgeInsets.only(left: 8.0, right: 8.0, top: 16.0),
child: Form(
key: formKey,
child: Column(
children: [
_Time(
onEndSaved: onEndTimeSaved,
onEndValidate: onEndTimeValidate,
onStartSaved: onStartTimeSaved,
onStartValidate: onStartTimeValidate,
startTimeInitValue: data?.startTime.toString(),
endTimeInitValue: data?.endTime.toString(),
),
SizedBox(height: 8.0),
...
}