[Flutter] Get_It 라이브러리

Comely·2024년 11월 14일

Flutter

목록 보기
2/26

Dependancy Injection
의존성을 특정 변수를 한 곳에 선언하고 그 값을 어디서나 사용하도록 주입합니다.
타입을 넣으면 저장해 놓은 데이터를 가져올 수 있습니다.

  • get_it 사용시
    Column을 받아와야 하기에 drift의 Column 기능은 숨깁니다.
    import 'package:drift/drift.dart' hide Column;

[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),
                      ...
          }
profile
App, Web Developer

0개의 댓글