[flutter] Class.fromMap

dev-nam 2022. 3. 20. 21:10

다트 Class.fromMap

fromMap은 map 데이터 구조를 초기화하는 생성자 메서드이다. 주로 모델 클래스에서 데이터베이스에서 받아온 데이터를 미리 지정한 변수 구조에 초기 설정하는데 사용된다.

 

데이터베이스에서 데이터를 모델 구조에 맞게 초기화시키는 과정이다.

class PostModel {
  PostModel({
    required this.id,
    required this.title,
    required this.content,
    required this.createdAt,
  });
  
  int id;
  String title;
  String content;
  DateTime createdAt;
  	
  factory PostModel.fromMap(Map<String, dynamic> json) => PostModel(
        id: json['id'],
        title: json['title'],
        content: json['content'],
        createdAt: DateTime.parse(json['create_at']),
      );
}

 

다음은 모델 클래스의 fromMap 메서드를 사용하는 과정이다.

class PostHelper {
  Future<List<PostModel>> getPosts() async {
  
    // 데이터베이스에서 post 데이터를 가져온다.
    final db = await _openDb();
    final result = await db.query('post_table');
    
    // 가져온 post 데이터를 PostModel 구조로 변환시킨다.
    List<PostModel> list = result.isNotEmpty
        ? result.map((item) => PostModel.fromMap(item)).toList()
        : [];        
    return list;
  }
}

 

반응형

'주제 > flutter' 카테고리의 다른 글

[flutter] cached_network_image package  (0) 2022.04.09
[flutter] 앱 테마 설정하기  (0) 2022.04.03
[flutter] datetime timestamp  (0) 2022.03.09
[flutter] sqlite db 사용하기  (0) 2022.03.09
[flutter] container min-max width, height  (0) 2022.02.27