반응형
https://www.youtube.com/watch?v=f7VewR__76I&t=640s&ab_channel=MitchKoko
위 코드를 코딩했다...!!
배운점
1.Hive는 기본적으로 String, DateTime 의 값을 저장 할 수 있는데 복합적인 값의 저장을 위해 convert 함수가 필요로 한다.
아마 내가 하루 지출 어플을 만들었을 때 이와 같은 작업을 하지 않아서 오류가 생긴 것 같다.
class HiveDataBase {
final _mybox = Hive.box("Expense2");
void saveData(List<ExpenseItem> allExpense) {
List<List<dynamic>> allExpenseFormatted = [];
for (var expense in allExpense) {
List<dynamic> expenseFomatted = [
expense.name,
expense.amount,
expense.dateTime,
];
allExpenseFormatted.add(expenseFomatted);
}
_mybox.put("All_EXPENSES", allExpenseFormatted);
}
List<ExpenseItem> readData() {
List savedExpense = _mybox.get('All_EXPENSES') ?? [];
List<ExpenseItem> allExpenses = [];
for (int i = 0; i < savedExpense.length; i++) {
String name = savedExpense[i][0];
String amount= savedExpense[i][1];
DateTime dateTime = savedExpense[i][2];
ExpenseItem expense =
ExpenseItem(
name: name ,
amount: amount,
dateTime: dateTime);
allExpenses.add(expense);
}
return allExpenses;
}
}
2. 모델을 사용할 때는 List를 두 가지로 사용하여야 한다. 단순히 ui용 , data용 이렇게 2가지이다.
List<ExpenseItem >overallExpenseList=[]; //리스트 타일에 들어가는 리스트
List<ExpenseItem> getAllExpenseList(){
return overallExpenseList; // overallExpenseList에 들어가는 모델을 위한 데이터
}
반응형
'Flutter-플러터 > 클론코딩' 카테고리의 다른 글
원가계산기 클론코딩 (0) | 2023.02.26 |
---|---|
레시피 계산기 클론코딩 (0) | 2023.02.24 |
todo 클론코딩 (0) | 2023.02.13 |
클론코딩 moneytracker with Hive 1편 (0) | 2023.01.18 |
todo 클론코딩 (0) | 2023.01.11 |