커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
3강 숙제에서
앱개발 종합반 - 플러터 v8
3주차
북마크
김*성
댓글
3
추천
0
조회수
3
조회수
3
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


updatedat이 오류가 뜹니다.

왜이러는지 잘 모르겠어요//






작성한 코드 및 에러 메세지

import 'dart:convert';


import 'package:flutter/material.dart';


import 'main.dart';


// Memo 데이터의 형식을 정해줍니다. 추후 isPinned, updatedAt 등의 정보도 저장할 수 있습니다.

class Memo {

  Memo({

    required this.content,

    this.ispinned = false,

    this.updatedat,

  });


  String content;

  bool ispinned;

  DateTime updatedat;


  Map toJson() {

    return {

      'content': content,

      'ispinned': ispinned,

      'updatedat': updatedat?.toIso8601String(),

    };

  }


  factory Memo.fromJson(json) {

    return Memo(

      content: json['content'],

      ispinned: json['ispinned'] ?? false,

      updatedat:

          json['updatedat'] == null ? null : DateTime.parse(json['updatedat']),

    );

  }

}


// Memo 데이터는 모두 여기서 관리

class MemoService extends ChangeNotifier {

  MemoService() {

    loadMemoList();

  }


  List<Memo> memoList = [

    Memo(content: '장보기 목록: 사과, 양파'), // 더미(dummy) 데이터

    Memo(content: '새 메모'), // 더미(dummy) 데이터

  ];


  createMemo({required String content}) {

    Memo memo = Memo(content: content);

    memoList.add(memo);

    notifyListeners(); // Consumer<MemoService>의 builder 부분을 호출해서 화면 새로고침

    saveMemoList();

  }


  updateMemo({required int index, required String content}) {

    Memo memo = memoList[index];

    memo.content = content;

    notifyListeners();

    saveMemoList();

  }


  updatepinmemo({required int index}) {

    Memo memo = memoList[index];

    memo.ispinned = !memo.ispinned;

    memoList = [

      ...memoList.where((element) => element.ispinned),

      ...memoList.where((element) => !element.ispinned)

    ];

    notifyListeners();

    saveMemoList();

  }


  deleteMemo({required int index}) {

    memoList.removeAt(index);

    notifyListeners();

    saveMemoList();

  }


  saveMemoList() {

    List memoJsonList = memoList.map((memo) => memo.toJson()).toList();

    // [{"content": "1"}, {"content": "2"}]


    String jsonString = jsonEncode(memoJsonList);

    // '[{"content": "1"}, {"content": "2"}]'


    prefs.setString('memoList', jsonString);

  }


  loadMemoList() {

    String? jsonString = prefs.getString('memoList');

    // '[{"content": "1"}, {"content": "2"}]'


    if (jsonString == null) return; // null 이면 로드하지 않음


    List memoJsonList = jsonDecode(jsonString);

    // [{"content": "1"}, {"content": "2"}]


    memoList = memoJsonList.map((json) => Memo.fromJson(json)).toList();

  }

}

오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.

Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴