여기선 List에 위젯들을 추가 후 remove로 삭제할때 작동하지 않는 경우를 메모한다.
1. 현상
List<Widget>을 선언 한 후 add함수로 필요한 위젯들을 추가 하였다.
그리고 builder 팩토리 생성자로 리스트의 위젯들을 빌드하여 사용자에게 보여준다.
또한 동적으로 삭제도 할 수 있으며 setState함수에서 remove함수를 호출하였다.
하지만 리스트에서 아이템이 삭제가 되지않았다..
2. 해결
리스트의 remove함수가 아닌 removeWhere함수를 이용하라는 검색결과가 있었다.
사용방법은 C#에서 자주 사용한 Linq식과 똑같이 removeWhere((파라미터)=>판별식);
과 같이 사용하면 되고 이렇게 사용하는 편이 요소를 지정하는데 애매하지 않고 확실하다고 생각한다.
나는 각 요소에 key값을 주어 이 key값을 비교해 삭제하는 판별식을 작성하였다.
'플러터[Flutter]' 카테고리의 다른 글
[Flutter] build 이후 한번만 실행? Stateful Widget의 Life Cycle (0) | 2021.11.20 |
---|---|
[Flutter] 플러터에서의 상속 (Inheritance of flutter) (0) | 2021.10.20 |
[Dart] mixin 키워드 (다중 상속) (0) | 2021.10.01 |