코딩강의/shopping_list(플러터-유데미)
227. Sending DELETE Requests
김마드
2023. 11. 15. 20:02
1. item을 삭제하는 기능을 활성해보자.
- grocery_list.dart
1) void _removeItem(GroceryItem item) async {
final index = _groceryItems.indexOf(item);
setState(() {
_groceryItems.remove(item);
});
final url = Uri.https('fltter-prep-default-rtdb.firebaseio.com',
'shopping-list/${item.id}.json');
final response = await http.delete(url);
if (response.statusCode >= 400) {
// Optional: Show error message
setState(() {
_groceryItems.insert(index, item);
});
}
}
--> setState를 맨 위에 설정한 이유는, 일단 로컬에서 삭제해주고 (괜히 로딩되는거를 보여줄필요 없음) 나중에 문제가 되면 다시 setState에서 insert를 함으로써 값을 다시 추가해주는 로직이다. 만약 이렇게 된다면 스낵바나 다른 방법을 통해 메시지를 보여주면 더 좋다.
그리고 http.delete를 통해 파베 디비에서 값을 삭제해줄 수 있다. (url주소에 구체적인 값이 지정되어 있음)